Сегодня коллега писал скрипт, и для упрощения процесса было необходимо копировать файлы с одного linux хоста на другой без ввода пароля по scp. Раньше это нигде не использовал, поэтому пришлось немного маны покурить.
Во первых, если кому надо, то настраивается это крайне просто.
на хосте с которого будем подключаться нужно сгенерить ключ без пароля:
test_user@testhost:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test_user/.ssh/id_rsa):
/home/test_user/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test_user/.ssh/id_rsa.
Your public key has been saved in /home/test_user/.ssh/id_rsa.pub.
The key fingerprint is:
52:99:be:4f:fd:99:ce:4e:de:9c:38:95:b9:dd:b5:a3 test_user@testhost
после этого, содержимое файла /home/test_user/.ssh/id_rsa.pub добавить в /home/%username%/.ssh/authorized_keys на хосте КУДА будем подключаться, и именно тому пользователю, под которым будем подключаться. Можно это сделать в ручную, а можно запустив команду на хосте С КОТОРОГО будем логинится:
ssh-copy-id -i /home/test_user/.ssh/id_rsa.pub test_user@ip_address
После этого ssh %username%@ip_address не будет спрашивать пароль.
И вот на этом месте меня посетила не веселая мысль. Дело в том, что какой-нибудь малварь (примитивный скрипт на bash), запущенный с вашими правами на линукс хосте с установленным sshd, может элементарно открывать бэкдор для последющего входа по ssh. Причем что бы обнаружить такой бэкдор не поможет никакой антивирус.