SSH-протокол для передачи файлов и папок (SCP)

SCP (Secure Copy Protocol) — протокол RCP копирования файлов, использующий в качестве транспорта не RSH, а SSH.
В UNIX-подобных операционных системах существует одноимённая (scp) утилита удалённого копирования файлов (входит в состав openssh).

Наша задача по просьбе клиента форума: сделать удаленную переброску файлов с одного сервера на удаленный сервер по средствам SSH с заменой старых файлов или содержимого папки, а также с запуском по крону в определенное время.

Создание ключа аутентификации для SSH
Для начала нам надо организовать без парольный доступ к удаленной машине по средствам SSH протокола и ключа аутентификации.
Доступ SSH должен быть на обоих серверах.
Заходим по средствам SSH на сервер под своим пользователем (в нашем примере пользователь будет "userone") с которого будем передавать файлы. Сразу после входа пользователем userone, мы попадаем в его домашнюю папку /home/userone/ никуда из этой папки не выходим.
Создаем ключи без парольного доступа следующей командой:

ssh-keygen -t dsa

ssh-keygen запросит passphrase, которым можно дополнительно защитить ключи, однако в этом случае придётся каждый раз вводить пароль, а нам нужен без парольный доступ между серверами. Так что жмем три раза кнопу "Enter".
Теперь у нас в папке пользователя создалась папка .ssh и в ней ключи доступа.
Один из ключей доступа нам надо скопировать на удаленный сервер под Вашего пользователя (в нашем примере удаленный пользователь называется "usertwo" и удаленный сервер server2.ua).

Копирование ключа на удаленный сервер
Для CentOS, Debian, Fedora, Gentoo, Mandriva, Ubuntu:

ssh-copy-id -i ~/.ssh/id_dsa.pub usertwo@server2.ua

Если на удаленном сервере стоит порт на SSH не 22, а к примеру 222, то вводим команду так:

ssh-copy-id -i ~/.ssh/id_dsa.pub "-p 222 usertwo@server2.ua"

Для FreeBSD, NetBSD, OpenBSD требуется создать файл ssh-copy-id:
touch /usr/bin/ssh-copy-id
chmod 755 /usr/bin/ssh-copy-id



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов