2010-03-25 16 views
12

En el protocolo ssh, ¿hay algún mecanismo para la transferencia de archivos?
Im trabajando en una base de código existente que ya tiene código de instalaciones ssh. Ahora necesito transferir archivos a través de la conexión ssh. Si el protocolo ssh ya lo admite, no tengo que integrar nada de scp en él.Transferir archivo a través de ssh

Gracias.

Editar:
Im utilizando código C, ssh basado en openssh.
Tengo que transferir el archivo de forma programada, sin utilizar un programa/comando externo debido a algunas limitaciones. El programa se supone que transfiere cualquier archivo de tamaño en el host remoto, fragmento a pedazo, y procesa el fragmento sobre la marcha. Luego, los datos del fragmento se descartan.

+0

posible duplicado de [Transferencia de archivos a través de SSH] (http://stackoverflow.com/questions/343711/transferring-files-over-ssh) – Ajedi32

Respuesta

5

sftp y scp son métodos existentes de transferencia de archivos "seguros", pero sus respuestas dependerán de la pila de tecnología que utilice para su aplicación. No mencionas si estás usando C#, PHP u otro idioma, o en qué tipo de máquina se ejecuta tu aplicación. Estas cosas tendrán una gran influencia en las respuestas que obtendrás.

+0

Uso C, código ssh basado en openssh. – datasunny

2

Intenta mirar SFTP.

Editar: También puede encontrar this article útil para ejecutar rsunc over ssh.

20
echo "hello" | ssh [email protected] "cat - > /tmp/file" 

I Juste leer el archivo, tubería en SSH, y escribo en el servidor SSHHost en el tmp/file /.

+0

Tengo que transferir el archivo de forma programada, porque hay algunas restricciones de memoria/disco duro. – datasunny

+0

+1 para los buenos días ol :-) Me doy cuenta de que esta publicación es antigua, pero puedes hacerlo de forma scriptable utilizando las claves ssh: http://www.linuxproblem.org/art_9.html – zje

1

Rsync puede ser de ayuda:

rsync [email protected]:filename remotefilename 
+0

Parece que lamentablemente rsync tiene que estar disponible en ambas máquinas – Hafenkranich

4

La forma de la vieja escuela es "tar-a-tar", que hace un buen trabajo de copiar y permisos conservantes. Esto ha sido reemplazado por el uso de rsync cuando ambos lados tienen rsync.

ssh [email protected] "cd mydir && tar cfp - mysubdir" | tar xvfp - 

Tenga cuidado con los archivos dispersos, etc., cuando haga esto. La mayoría de los alquitranes tienen una opción para preservar los agujeros del archivo durante este tipo de proceso.

+0

Tenga en cuenta que AMBOS lados deben poder usar rsync – Hafenkranich

0
To download: remote -> local 
scp [email protected]_host:remote_file local_file 

To upload: local -> remote 
scp local_file [email protected]_host:remote_file 

Para archivos múltiples, incluya -r después de scp.

Cuestiones relacionadas