Передача файла через SSH - PullRequest
12 голосов
/ 25 марта 2010

В протоколе ssh есть механизм для передачи файлов?
Я работаю над существующей кодовой базой, в которой уже есть код ssh. Теперь мне нужно передать файлы через SSH-соединение. Если протокол ssh уже поддерживает его, мне не нужно в него интегрировать scp.

Спасибо.

Edit:
Я использую C, SSH код, основанный на OpenSSH.
Я должен передать файл программно, не используя внешнюю программу / команду из-за некоторых ограничений. Программа должна передавать файлы любого размера на удаленный хост по частям и обрабатывать их на лету. Затем данные чанка отбрасываются.

Ответы [ 6 ]

19 голосов
/ 25 марта 2010
echo "hello" | ssh user@SSHHost "cat - > /tmp/file"

Я просто читаю файл, передаю его в SSH и пишу на сервере SSHHost в /tmp/file.

5 голосов
/ 25 марта 2010

sftp и scp - оба существующих "безопасных" метода передачи файлов, но ваши ответы будут зависеть от того, какой технологический стек вы используете для своего приложения. Вы не упоминаете, используете ли вы C #, PHP или другой язык, или на каком компьютере работает ваше приложение. Эти вещи будут иметь большое значение для ответов, которые вы получите.

4 голосов
/ 16 августа 2010

Старая школа - это «tar-to-tar», которая хорошо выполняет копирование и сохранение разрешений. Это в значительной степени заменено использованием rsync, когда обе стороны имеют rsync.

ssh test@example.org "cd mydir && tar cfp - mysubdir" | tar xvfp -

Будьте осторожны с редкими файлами и т. Д., Когда вы делаете это. У большинства смол есть возможность сохранить дыры в файлах во время такого рода процессов.

2 голосов
/ 25 марта 2010

Попробуйте посмотреть SFTP .

Редактировать: Вы также можете найти эту статью полезной для запуска rsunc поверх ssh.

1 голос
/ 25 марта 2010

Rsync может помочь:

rsync usernamea@server.com:filename remotefilename
0 голосов
/ 19 января 2016
To download: remote -> local
scp user@remote_host:remote_file local_file 

To upload: local -> remote
scp local_file user@remote_host:remote_file

Для нескольких файлов включайте -r после scp.

...