SCP vs SFTP

Toni
27 de Marzo del 2006
Que me recomendais?
Tengo que crear una aplicación cliente-servidor que transmita archivos del cliente al servidor. Del cliente al servidor se enviaran tanto ficheros de texto como archivos binarios y del servidor al cliente en principio solo ficheros de texto. He de enviar los datos con seguridad, por lo que había pensado enviarlo todo a través de SSH.
Revisando los protocolos para enviar archivos he visto que puedo hacerlo mediante sftp o mediante scp. Por ahí he leido que scp es sencillo y rápido y que por contra sftp es complicado y lento. No sé que es lo que habrá de cierto en esa afirmación, pero me gustaría saber si alguno de vosotros tiene experiencia con programas donde haya tenido que utilizar alguno de estos protocolos.
También tengo otras dudas, ya que tengo muy poca experiencia con esto.
Me imagino que necesitaré tener un servidor de SSH en el servidor, no? Me imagino que me valdría openSSH. A parte de esto que necesitaría?
Después, me imagino que tendría que jugar con contraseñas. Para envíar datos del ordenador donde está el cliente al ordenador donde está el servidor, tendré que introducir un usuario y una contraseña del servidor, no es así? Pero al enviar del servidor al cliente, tendré que hacer lo mismo? Necesito otro openSSH en el ordenador del cliente o lo único que necesito en el cliente es tener una clase que sea clienteSSH por ejemplo? He estado mirando por ahí y he encontrado una libraría que se llama jsch. En la página de esa libraría, hay algunos ejemplos hechos como podeis ver:
http://www.jcraft.com/jsch/examples/
he visto que está el ejemplo de ScpTo, ScpFrom y Sftp. Lo que no sé si después de elegir un protocolo, si elijo por ejemplo Scp, si tendría que poner en el cliente las dos clases de Scp y en el servidor también (ambas aplicaciones deben de poder enviar y recibir archivos).
Después a parte de eso, necesitaría clases para manejar SSH? he buscado por ahí y he encontrado alguna cosa hecha con esa libraría:
http://lists.gforge.inria.fr/pipermail/proactive-commits/2006-March/000180.html
Como vereis no tengo nada claro. A ver si me podeis echar una mano y aclararme ideas y conceptos.