На локальной машине (та, с которой хотим получить доступ к серверу) создаем пару ключей:
andrey@localhost ~ $ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/andrey/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/andrey/.ssh/id_dsa. Your public key has been saved in /home/andrey/.ssh/id_dsa.pub. The key fingerprint is: 7a:aa:7a:3a:9a:ba:6a:4a:2a:da:2a:2a:8a:2a:4a:3a andrey@localhost
Поле passphrase оставляем пустым.
В итоге получим два файла:
andrey@localhost ~ $ ls -l ~/.ssh -rw------- 1 andrey users 526 Nov 10 01:00 id_dsa -rw-r--r-- 1 andrey users 330 Sep 10 01:00 id_dsa.pub
Размещаем файл id_dsa.pub на сервере, на котором хотим авторизироваться используя ключ:
andrey@localhost ~ $ scp id_dsa.pub andrey@SERVER_ADDRESS:~/
Используйте любой удобный для вас способ.
Теперь логинимся на сервер под тем пользователем, для которого делаем авторизацию по ключу. И помешаем наш публичный ключ в ~/.ssh/authorized_keys:
mkdir ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys2 chmod 600 ~/.ssh/authorized_keys2 cat ~/id_dsa.pub >> ~/.ssh/authorized_keys2 rm ~/id_dsa.pub
Готово, можно проверять:
andrey@localhost ~ $ ssh andrey@SERVER_ADDRESS
Если все правильно, то пароль запрошен не будет.