Копирование SCP без ввода пароля

Актуально для: Linux, FreeBSD

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

Итак, перво-наперво настроим клиент ssh на текущей машине. Внимательно проверьте его настройки таким образом, чтобы он позволял подключаться к удаленной машине без ввода дополнительных параметров (например, если у Вас вместо 22го используется другой порт).

Лежит он по адресу: /etc/ssh/ssh_config
Не путайте с sshd_config - это разные файлы.

После этого выполняем следующие действия (все они выполняются на машине, с которой будет выполняться доступ к удаленному компьютеру): из-под пользователя, под которым будем использовать scp выполняем:

# ssh-keygen
# ssh-copy-id -i /home/[username]/.ssh/id_rsa.pub [remote_user]@[remote_ip]

На вопрос ssh-keygen о пароле жмите просто Enter - т.е. пустой пароль.
На вопрос "куда положить файл" отвечайте: /home/[username]/.ssh/id_rsa.pub

Здесь:

[username] - это локальное имя пользователя на машине, с которой Вы будете подключаться и под которым будете запускать SCP.
[remote_user] - это имя пользователя на удаленной машине, под которым вы будете подключаться через SSH.
[remote_ip] - это IP-адрес удаленной машины.

Все, теперь осталось только проверить SCP. Если команда ssh-copy-id выполнилась удачно - все будет работать.

PS. Для FreeBSD.

Из коробки во FreeBSD утилита ssh-copy-id не идет. Для ее установки выполняем:

$ cd /usr/ports/security/ssh-copy-id
$ sudo make install clean
Закладка Постоянная ссылка.

Добавить комментарий

Ваш e-mail не будет опубликован.

*