ssh авторизация по ключу

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

ssh-keygen -t rsa

Теперь отправляем его на тот сервер к которому будем подключаться.

ssh-copy-id -i /root/.ssh/id_rsa root@your.server.de

либо вот так:

cat /root/.ssh/id_rsa | ssh root@your.server.de "mkdir -p /root/.ssh && cat >>  ~/.ssh/authorized_keys"

теперь можно делать так

scp /backup/current.tar.gz root@your.server.de:/backup/

Ну и конечно же ни в коем случае не делайте как написано….. root вообще не должен логинится на сервер, используйте авторизацию для своего пользователя.

cat /etc/ssh/sshd_config
......
PermitRootLogin no
....

Дополнение от Алексей Убоженко

Хотел предложить добавить config для хоста. Действие простое.
* В файл ~/.ssh/config добавляем
Host serv2
HostName 127.0.0.1
Port 22
User root

И авторизуемся просто
ssh serv2

rsync, например, будет выглядеть так:
rsync -av –progress –partial /home/test/ serv2:/home/test

Второе улучшение: можно разрешить руту ходить по SSH. Но при этом запретить аутентификацию через пароль. В /etc/ssh/sshd_config просто находим и правим это:

PasswordAuthentication yes
PermitRootLogin without-password

Всё, по ключикам можно ходить всемогущему root. 🙂

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