Аутентификация на OpenSSH сервере с помощью файлов ключей

Комментировать К комментариям

OpenSSH является набором инструментов для защищенной работы с удаленным компьютером.
OpenSSH поддерживает несколько способов аутентификации, одним из которых является, наиболее безопасный и удобный способ, с использованием личных и публичных ключей (Identities/Pubkeys). При использовании данного способа аутентификации, для работы с удаленным компьютером необходимо обладать приватным ключом и кодовой фразой, обычный способ аутентификации (паролем) может быть отключен администратором сервера совсем.

Для использования этого способа нам нужно сгенерировать приватный и публичный ключ, при этом приватный ключ мы защищаем кодовой фразой, чтобы другие пользователи вашего компьютера не могли им воспользоваться. Создание ключей осуществяется утилитой ssh-keygen, в качестве параметра задается тип ключа SSH (RSA1 — для протокола SSH 1 или RSA, DSA для протокола SSH 2).
При генерации ключа можно изменить имя файла ключа и задать ключевую фразу для работы с личным ключом.

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 

После окончания генерации необходимо добавить содержимое файла вашего публичного ключа (в данном случае id_rsa.pub) в файл ~/.ssh/authorized_keys на удаленном компьютере. Проще всего это сделать так (если директории .ssh или файла authorized_keys еще нет, то они создаются):

#scp id_rsa.pub user@server.ru:id_rsa.pub
Password: вводим пароль

#ssh user@server.ru
Password: вводим пароль

#mkdir .ssh
#chmod 700 .ssh

#cd .ssh
#cat ../id_rsa.pub  >> authorized_keys
#chmod 600 authorized_keys
#exit

Также на сервере SSH должен быть разрешен данный вид аутентификации, проверьте наличие указанных ниже строк в файле /etc/ssh/sshd_config.

#Разрешает аутентификацию ключами по протоколу SSH 1
RSAAuthentication yes
#Разрешает аутентификацию ключами по протоколу SSH 2
PubkeyAuthentication yes
#Адрес файла ключей относительно домашней папки пользователя
AuthorizedKeysFile    .ssh/authorized_keys

При необходимости сделайте в файле нужные изменения и перезапустите демон OpenSSH:

#/etc/init.d/sshd restart 

Теперь при подключении к серверу сначала будет происходить попытка осуществить аутентификацию с помощью ключа, а в случае неудачи — по паролю:

#ssh server.ru
Enter passphrase for key '/home/xahria/.ssh/id_rsa':

В случае если у Вас несколько приватных ключей для разных целей, то при подключении, с помощью параметра -i ~/.ssh/special_id_rsa можно указать ключ, который нужно использовать.

# ssh -i ~/.ssh/special_id_rsa server.ru

Также можно создать файл ~/.ssh/config и указать в нем сервер и ключ необходимый для аутентификации на нем:

Host server.ru
IdentityFile ~/.ssh/special_id_rsa

8 февраля 2010

сымбат Май 20.2013 на 08:12 | #1

у меня при после всех процедур при попытке зайти на удаленный компьютер используя мой аккаунт@удаленный комп, все равно запрашивает пароль и ввод пустого пароля или же ввод пароля моего пароля не помогает. Как исправить?

SchwarzW01f Апрель 24.2014 на 12:09 | #2

Это наверно потому что ты ключ защитил пассфразой, это ее скорее всего спрашивает, лечится или пересозданием ключика без защиты пассфразой, или вспоминанием этой самой пассфразы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*
CAPTCHA

*