07.11.2017

Передача фалов по SSH

 SSH он же Secure Shell, в основном, используется системными администраторами для удаленного управления серверами и оборудованием. Используя этот же протокол, можно успешно передавать файлы и целые директории.

Для чего это необходимо уметь делать? Каждый сам найдет ответ на этот вопрос. Я предлагаю детально рассмотреть передачу файлов, когда клиентом выступает Windows, и немного коснусь передачи  между Unix на примере клиента Ubuntu.

1. Клиент Windows, сервер Ubuntu

Для работы с SSH на Windows в большинстве случаев используют pytty, для передачи файлов существует консольная утилита pscp.exe того же разработчика, что и предыдущая. Если у Вас она отсутствует, загружаем ее с официального ресурса https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html.

Передача одного файла

Синтаксис

PSCP.EXE файл_источник файл_назначения

Пример передачи с клиента на сервер

D:\Program Files (x86)\putty\PSCP.EXE d:\tmpputty.log user@10.10.10.10:/home/user/putty.log

user@10.10.10.10's password:

putty.log                 | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

Где

d:\tmpputty.log  - файл который отправляется на сервер

user – имя пользователя удаленного сервера

10.10.10.10 – адрес сервера

/home/user/putty.log – полный путь файла назначения

Пример передачи с сервера к клиенту

D:\Program Files (x86)\putty\PSCP.EXE user@10.10.10.10:/home/user/putty.log d:\tmpputty1.log

user@10.10.10.10's password:

putty1.log                | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

Передача нескольких файлов

Синтаксис команды аналогичный предыдущему случаю с тем лишь различием, что указываем маску фалов источников и вместо файла назначения указываем директорию. Более понятно будет на примере

Передача от клиента к серверу

D:\Program Files (x86)\putty\PSCP.EXE d:\tmp\putty* user@10.10.10.10:/home/user/

user@10.10.10.10's password:

PUTTY.EXE                 | 756 kB | 756.1 kB/s | ETA: 00:00:00 | 100%

putty.log                 | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

putty1.log                | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

d:\tmp\putty* - маска файлов источников, все файлы, которые находятся в папке d:\tmp и начинаются на putty

/home/user/ - папка назначения

Передача с сервера к клиенту

D:\Program Files (x86)\putty\PSCP.EXE user@10.10.10.10:/home/user/putty* d:\tmp\putty_test

user@10.10.10.10's password:

putty.log                 | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

putty1.log                | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

Передача директории

Иногда бывает необходимость передать целую директорию, я предпочитаю, предварительно заархивировав ее, но есть случаи, когда в этом нет необходимости.

Синтаксис использования аналогичный предыдущим случаям, с той разницей, что указываем директории источника и назначения, а также используем ключ –r

Пример использования

D:\Program Files (x86)\putty\PSCP.EXE -r d:\tmp\putty_test user@10.10.10.10:/home/user/

user@10.10.10.10's password:

putty.log                 | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

putty1.log                | 10139 kB | 10139.7 kB/s | ETA: 00:00:00 | 100%

Просмотр содержимого директории

Используем ключ –ls и указываем директорию. Пример ниже

D:\Program Files (x86)\putty\PSCP.EXE -ls user@10.10.10.10:/home/user/

user@10.10.10.10's password:

Listing directory /home/user/

drwxr-xr-x    7 user     user         4096 Nov  7 20:41 .

drwxr-xr-x    3 root     root         4096 Sep 29 17:36 ..

-rw-------    1 user     user         6832 Nov  7 20:37 .bash_history

-rw-r--r--    1 user     user          220 Sep 29 17:36 .bash_logout

-rw-r--r--    1 user     user         3771 Sep 29 17:36 .bashrc

drwx------    3 user     user         4096 Oct  2 15:10 .cache

drwx------    3 root     root         4096 Oct  2 15:10 .config

drwx------    3 root     root         4096 Oct  2 15:10 .local

-rw-------    1 root     root           13 Oct  2 16:44 .mysql_history

-rw-r--r--    1 user     user          655 Sep 29 17:36 .profile

-rw-------    1 root     root         1024 Oct  2 17:37 .rnd

-rw-r--r--    1 root     root           72 Oct  2 15:11 .selected_editor

-rw-rw-r--    1 user     user          487 Nov  6 21:25 1.txt

-rw-rw-r--    1 user     user          487 Nov  6 21:26 2.txt

-rw-rw-r--    1 user     user       774200 Nov  7 20:41 PUTTY.EXE

-rw-rw-r--    1 user     user     10383009 Nov  7 20:41 putty.log

-rw-rw-r--    1 user     user     10383009 Nov  7 20:41 putty1.log

2. Клиент и сервер Ubuntu (Linux)

Для передачи файлов используется утилита scp, синтаксис использования которой на операциях, описанных выше, абсолютно идентичен. По этой причине не вижу смысла повторяться.

Важное замечание

При передаче фалов не забывайте, что имена фалов и директорий для Unix-систем регистрозависимы, в отличии от Windows.

Если у Вас возникли вопросы, задавайте их в комментариях

Комментариев нет:

Отправить комментарий