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

Материал из wiki.p3.ru

Для тех кому лень каждый раз набирать логин и пароль для ssh-сессии, может быть применено следующее решение (пример для PuTTY):

С генерацией ключа средствами ssh-keygen

cd ~
mkdir .ssh
cd .ssh
ssh-keygen -b 1024 -t dsa
 Generating public/private dsa key pair.
 Enter file in which to save the key (/root/.ssh/id_dsa):
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /root/.ssh/id_dsa.
 Your public key has been saved in /root/.ssh/id_dsa.pub.
 The key fingerprint is:
 x6:68:xx:93:97:8x:87:35:7x:3x:1x:x9:81:xx:56:94 root@my-domain.com

mv id_dsa.pub authorized_keys
chmod 700 .
chmod 600 authorized_keys

Сохраняем файл id_dsa в надежном месте.

С генерацией ключа в PuTTYgen

  • используем утилиту для генерации ключей PuTTYgen
    • в меню Key выбираем SSH-2 DSA key
    • жмем Generate, двигаем мышкой для обеспечения лучшей рандомизации ключа
    • жмем Save Private Key, сохраняем ключ в надежном месте
    • копируем в буфер текст из поля Public key for pasting into OpenSSH authorized_keys
  • заходим на сервер используя логин и пароль, выполняем:
cd ~
mkdir .ssh
chmod 700 .ssh 

вставляем наш публичный ключ в файл authorized_keys

cat > .ssh/authorized_keys
[Shift-Ins][Ctrl-B]
chmod 600 authorized_keys

Обратите внимание: Ключ должен быть в одну строчку.

Пример: ssh-dss АБРАКАДБРА/ОЧЕНЬ/БОЛЬШОЙ/КЛЮЧ dsa-key-20081207


Если Вы использовали текстовый редактор, типа nano, то он может перенести строки и разбить ключ на 3 строки. В этом случае сервер будет обрывать все попытки подключения и вы вообще не сможете войти. Удалите ненужные переводы строк, прежде, чем сохраните файл.


Встроенный редактор Midnight Commander (mc, клавиша F4) лишен этого недостатка и корректно вставляет ключ в файл authorized_keys.

Использование ключа

В настройках PuTTY указываем наш приватный ключ (Connection - SSH - Auth - Private key file for authentification). Можно так же указать и логин (Connection - Data - Auto-login username).

Пробуем подключиться:

Using username "root".
Authenticating with public key "dsa-key-20080302"
Last login: Mon Mar 22 01:30:00 2008 from 207.46.232.182

Авторизация по ключу работает.