Как правило, приходится вводить свой пароль каждый раз при входе на сервер по SSH. Но можно не делать этого, можно проходить аутентификацию с помощью собственного ключа.
Для того, чтобы выполнять вход с помощью собственного ключа, а не пароля необходимо выполнить следующие шаги:
- выполнить вход на сервер
- выполнить команду:
ssh-keygen -b 1024 -t dsa -N passphrase -f mykey - изменить "passphrase" на секретное слово, известное только вам
- выполнить команду:
ls -l mykey*
Последняя команда выведет список только что созданных SSH2 DSA ключей. Список будет выглядеть примерно так:
-rw------- 1 evgeniyh evgeniyh 744 21 окт 19:39 mykey
-rw-r--r-- 1 evgeniyh evgeniyh 619 21 окт 19:39 mykey.pub
В списке находятся два файла: "mykey" и "mykey.pub". Как можно догадаться файл с расширением .pub является публичным ключом, а другой файл — приватным. Публичный ключ должен располагаться на сервере, а приватный — только у вас.
Чтобы сохранить публичный ключ на сервере необходимо перейти убедиться, что в директории /home/username/ существует директория .ssh. Если не существует, то ее очень просто создать:
- выполнить команду:
cd /home/myuser - выполнить команду:
mkdir .ssh
Кстати, если есть нужно создать и самого пользователя, то это можно сделать командой
useradd -m username.Теперь публичный ключ нужно сохранить в файл authorized_keys. Вместо имени вероятно следует использовать другое, например authorized_keys2 — это зависит версии ПО на сервере и различных настроек.
- выполнить команду:
cp mykey.pub /home/myuser/.ssh/authorized_keys
Если в файле authorized_keys уже находились какие-то ключи, то необходимо будет выполнить такую команду:
cat mykey.pub >> /home/myuser/.ssh/authorized_keysПриватный ключ следует скачать на свой локальный компьютером. Для этого можно использовать программу WinSCP.
Прежде, чем использовать приватный ключ для входа на сервер, ключ необходимо конвертировать в формат, который подходит для SSH-клиента PuTTY. Конвертацию можно очень просто сделать с помощью программы Puttygen, которая входит в поставку программы PuTTY.
Программу PuTTY (а также Plink, Pageant и Puttygen) можно скачать отсюда: http://www.chiark.greenend.org.uk/~sgtatham/putty/
В программе Puttygen следует выбрать команду Import key и выбрать скаченный приватный ключ. Puttygen потребует ввести секретное слово, которое использовалось при генерации ключей. Теперь нужно выбрать команду Save private key и программа сохранит на диск ключ, например с таким именем mykey.PPK. При конвертации можно указать другое секретное слово, которое будет запрашиваться при аутентификации. Также можно оставить это поле пустым, и тогда ничего не потребуется вводить при входе на сервер.

Когда ключ с расширение .PPK готов, необходимо записать его месторасположение в настройки соединения PuTTY. Для этого служит настройка Auth->Private Key file for auth.

Готово. Теперь вход на сервер не требует ввода пароля (если не было задано секретное слово). Терминал после входа будет выглядит примерно так:

Для написания этого поста использовался материал: http://tortoisesvn.net/ssh_howto
2 коммент.:
крута! обязательно попробую на работе! Спасибо за трюк :)
Бывает, что при попытке соединение сервер возвращает сообщение об ошибке "Server refused our key".
Нужно убедиться, что на каталог /home/yourname/.ssh установлены права 700. Если нет, то установить права можно командой chmod.
Отправить комментарий