Linux Tux logo

На локальной машине (та, с которой хотим получить доступ к серверу) создаем пару ключей:

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

Если все правильно, то пароль запрошен не будет.