• Авторизация


ssh pub keys 21-08-2007 17:07 к комментариям - к полной версии - понравилось!


OpenSSH поддерживает не только просто пароли для аутентификации. можно так же использовать механизм PAM и другие. Одним из удобных механизмов является механизм аутентификации через публичные ключи(Identity/Pubkey).

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

Изначально реализация протокола SSHv1 подразумевала  создание Identity, которое представляет собой пару публичного и частного RSA ключей. Во второй версии протокола SSHv2 протокол изменил формат этих ключей. Стали доступны оба RSA и DSA форматы ключей и переименован название метода аутентификации вместо Identity аутентификации он стало называться Pubkey authentication.
 
Теперь о реализации:

Создание pubkey:
desktop$ ssh-keygen -t dsa
 Generating public/private dsa key pair.
Enter file in which to save the key (/home/oleg/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): (enter passphrase)
Enter same passphrase again: (enter passphrase)
Your identification has been saved in /home/oleg/.ssh/id_dsa.
Your public key has been saved in /home/oleg/.ssh/id_dsa.pub.
The key fingerprint is:
2c:3f:a4:be:46:23:47:19:f7:dc:74:9b:69:24:4a:44 oleg@desktop
Пара ключей сформировалась в /home/oleg/.ssh/

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


Разрешаем  Pubkey (SSH version 2) authentication

Редактируем /etc/openssh/sshd_config
# Should we allow Pubkey (SSH version 2) authentication?
PubkeyAuthentication yes

# Where do we look for authorized public keys?
# If it doesn't start with a slash, then it is
# relative to the user's home directory
AuthorizedKeysFile .ssh/authorized_keys
/etc/init.d/sshd restart

 

Устанавливаем authorized_keys:

Файл  authorized_keys это просто текстовый файл со списком ключей - один на строку. 

Копируем на сервер публичный DSA ключ используя scp. В принципе можно использовать любой метод включая копипаст.
desktop$ cd $HOME/.ssh
desktop$ scp ./id_dsa.pub oleg@ssh-server:id_dsa.pub
oleg@ssh-server's password: (enter password)


Теперь создаем файл authorized_keys

desktop$ ssh ssh-server
oleg@ssh-server's password: (enter password)

Создаем каталог .ssh если его еще нет.
ssh-server$ mkdir .ssh
ssh-server$ chmod 700 .ssh
ssh-server$ cd ./ssh

Добавляем запись о ключе.
ssh-server$ cat ../id_dsa.pub >> authorized_keys
ssh-server$ chmod 600 authorized_keys
ssh-server$ exit

Теперь если мы ввели пароль для ключа то:
desktop$ ssh oleg@ssh-server
Enter passphrase for key '/home/oleg/.ssh/id_dsa':

или автоматом аунтефицируется, если ключ сформирован без пароля.


Перевод делал со статьи http://www.securityfocus.com/infocus/1810

 
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник ssh pub keys | oOoXiD - Сетевик-затейник oOoXiD | Лента друзей oOoXiD / Полная версия Добавить в друзья Страницы: раньше»