ВНИМАНИЕ !
Эта статья перенесена на sysadminwiki.ru,
где вы можете принять участие в её улучшении!
Здесь она обновляться больше не будет.

Терминальное ssh подключение к серверу Linux с помощью ключей без паролей.

2006.08.04
версия 1.03
24pm@mail.ru

Подключаемся из Linux  к Linux

- Чтобы подключаться без пороля по защищённому соединению ssh, нужно создать пару ключей (публичный и приватный) командой ssh-keygen. Ключи будут храниться в файлах $HOME/.ssh/id_rsa (приватный) и $HOME/.ssh/id_rsa.pub (публичный). Приватный ключ должен остаться в своём каталоге в секрете, а публичный мы будем раздавать всем, к кому желаем подключиться.
- Для генирации ключа запускаем от пользователя. На запрос пароля жмём enter, чтобы не пришлось потом вводить этот пароль при подключении. Итак, создаём:
$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/pavel/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pavel/.ssh/id_rsa.
Your public key has been saved in /home/pavel/.ssh/id_rsa.pub.
The key fingerprint is:
da:eb:83:04:f4:d2:1f:52:b7:90:5c:cb:1b:2e:ee:59 pavel@teo.mynetwork.ru

- Чтобы разрешить (запретить = no) подключение пользователем root в /etc/ssh/sshd.conf (или /etc/openssh/sshd_config) меняем:

PermitRootLogin yes
PermitEmptyPasswords no
PasswordAuthentication yes

- Публичный ключ нужно скопировать на удалённый компьютер в домашнюю директорию пользователя, которым будем подключаться, в файл $HOME/.ssh/authorized_keys, т.е. для root это /root/.ssh/authorized_keys, а для пользователя pavel это будет /home/pavel/.ssh/authorized_keys. В этом файле по одному в строку будут располагаться все публичные ключи удалённых пользователей, которым мы дадим доступ для такого соединения.
- Проверяем. Пытаемся подключиться к удалённому компьютеру пользователем pavel:
[pavel@teo .ssh]$ ssh pavel@10.0.0.254
[pavel@astra pavel]$
По смене приглашения командной строки видим, что подключились удачно.

Подключаемся из Windows к Linux

Схема подключения та же самая, только в Windows для подключения используем программу PuTTY,  а для генерации ключей puttygen.exe от того же производителя. Всё это можно бесплатно скачать с официального сайта http://www.chiark.greenend.org.uk/~sgtatham/putty/, либо с этого сайта со страницы Download.
- Создаём ключ:
1) выбираем тип ключа SSH-1(RSA),
2) нажимаем "Generate" и водим мышкой, пока не заполнится прогресс-бар,
3) нажимаем "Save public key", задаём имя rsa1.pub
4) нажимаем "Save private key", задаём имя rsa1.ppk
- Создаём подключение. Запускаем putty.exe  и указываем: Host Name: 10.0.0.254, Port: 22, Saved Sessions: 254 (любое имя соединения)
- В категории Connection -> Data  -> Auto-login username: pavel
- В категории Connection -> SSH -> Auth -> Private key file ... жмём кнопку Browse, выбираем rsa1.ppk
- В категории Connection -> SSH ->Preferred SSH protocol version выбираем "1"
- В категории Window -> Translation выбираем кодировку удалённой системы, при несовпадении кодировки в mc вместо псевдографики будет мусор
- Возвращаемся в категорию Session и сохраняем настройки, нажимая кнопку Save.
- Подключаемся к серверу: жмём Open. Т.к. публичный ключ мы ещё не добавили, то придётся ввести пароль.
- Здесь действия теже, что и при подключении из Linux. Добавляем содержимое файла rsa1.pub в домашний каталог пользователя /home/pavel/.ssh/authorized_keys.
- На этом всё. Загружаем PuTTY и щёлкаем два раза по названию соединения 254. Теперь мы должны подключиться к серверу 10.0.0.254 пользователем pavel без запроса пароля.

Дополнительные статьи:
Создание vpn туннеля

 

Обсудить, спросить
на форуме
Новую версию этого документа можно получить на одном из зеркал сайта:
pm4u.opennet.ru, pm4u.narod.ru