Если нужно постоянно “ходить” по ssh и до сих пор не используется пара ключей для авторизации, то эта статья для вас.
Во-первых, использование ключей является удобной практикой, а во-вторых, это еще и безопасный способ подключения. В этой статье я расскажу как создать приватный и публичный ключи. Будем использовать инструменты PuTTY, PuTTYgen и Pageant.
Аутентификация SSH подключений происходит методом совпадения приватного ключа, который хранится на локальном компьютере, и публичного с удаленного сервера. При такой процедуре не нужно вводить пароль. В дальнейшем, для большей безопасности, можно вообще отключить авторизацию по паролю.
Шаг 1. Получение приватного и публичного ключа
а) логинимся на наш сервер по SSH, используя PuTTY
б) для генерации ключей нужно придумать ключевую фразу (она должна отличаться от пароля пользователя)
в) генерируем ключи, длинной 1024 бит, типом DSA, фразой passphrase, именем файла mykey:
1 |
ssh-keygen -b 1024 -t dsa -N passphrase -f mykey |
г) в текущем каталоге будет создано два файла mykey и mykey.pub – приватный и публичный ключ соответственно
д) в домашнем каталоге создаем папку .ssh с правами 700:
1 |
mkdir -m 700 ~/.ssh |
е) копируем публичный ключ в созданную папку, меняем имя файла на authorized_keys и выставляем права 600:
1 2 |
cp mykey.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys |
ж) копируем приватный ключ mykey на локальный компьютер, т.е. на тот, с которого будем логиниться по SSH
Шаг 2. Подключение с использованием PuTTY, PuTTYgen and Pageant
а) проблема заключается в том, что полученный нами приватный ключ нельзя напрямую использовать с PuTTY – его нужно конвертировать с помощью PuTTYgen
б) заходим в меню Conversions > Import key, выбираем наш приватный ключ mykey, вводим ключевую фразу (мы ее указали как passphrase ранее) и нажимаем на кнопку Save private key
в) сохраним файл как mykey.ppk
г) время запустить Pageant. После запуска, появляется иконка в виде “компьютер в шляпе” возле часов. Кликаем на ней правой кнопкой, нажимаем на Add key
д) выбираем только что созданный файл mykey.ppk
г) вводим ключевую фразу (об успешности операции можно глянуть в меню View keys, где отображен импортированный наш ключ)
е) запускаем PuTTY, открываем нужную сессию, попросят ввести имя пользователя что и сделаем.
Если всё сделано правильно, то запроса ввести пароль не будет. Вместо этого в консоли будет сообщение об успешном аутентификации с использованием ключа:
1 |
Authenticating with public key "imported-openssh-key" from agent |
Кстати, таким образом можно избавиться от проблемы запроса ввести пароль, если используется связка svn+ssh.
Дополнительные материалы:
http://tipsandtricks.nogoodatcoding.com/2010/02/svnssh-with-tortoisesvn.html
https://library.linode.com/securing-your-server
Мне задали вопрос почему в примере используется DSA, а не RSA. Надеюсь, эта ссылка сможет разъяснить ситуацию http://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys
После прочтения статьи, возникает вопрос: а можно ли использовать несколько пар приватных и публичных ключей в пределах одного пользователя? Будут ли это разные ключи или нужно использовать один и тот же?
Отличная статья! Все с первого раза заработало, даже svn+ssh. Продолжай в том же духе.
Всегда пожалуйста, рад что тебе помог. Будем стараться.
Прогоним полученный приватный ключ через puttygen.exe, делая его пригодным к использованию. Для этого нажимаем кнопку «Load» напротив надписи «Load an existing private key file», а затем «Save private key»