В некоторых ситуациях нужно заходить на сервер без пароля (отработка скрипта, лень вводить пароль,
защита от кейлогеров).
Для этого можно организовать вход по ключу.
Сначала сгенерируем его для текущего пользователя:
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 serv2rsync, например, будет выглядеть так:
rsync -av –progress –partial /home/test/ serv2:/home/testВторое улучшение: можно разрешить руту ходить по SSH. Но при этом запретить аутентификацию через пароль. В /etc/ssh/sshd_config просто находим и правим это:
PasswordAuthentication yes
PermitRootLogin without-passwordВсё, по ключикам можно ходить всемогущему root. 🙂