Главная > В помощь sysadmin'y > SSH для простых смертных (авторизация по ключу)

SSH для простых смертных (авторизация по ключу)

SSH авторизация по ключу
Представим себе что у нас имеются десятки (о, ужас сотни машин) и к каждой надо запоминать различные пароли, а ставить один и тот же пароль не рекомендуется с точки зрения безопасности, также не удобно вводить пароль, например, в автоматических скриптах.
Поэтому SSH обеспечивает ещё один метод авторизации пользователя: по открытому ключу
Создаем ключи(открытый и закрытый):
$ ssh-keygen -t dsa

Generating public/private dsa key pair.
Enter file in which to save the key (/home/ceval/.ssh/id_dsa): key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in key.
Your public key has been saved in key.pub.

После выполнения у нас появиться 2 файла, в идеале должны появиться в директории .ssh, у меня появились в ~/home/ceval возможно надо было указать путь при создании ключа (/home/ceval/.ssh):
key — приватный ключ, держать в секрете .ssh
key.pub — публичный ключ, необходимо будет положить на сервер
Если ключи создались ~/home/ceval перемещаем их в .ssh и на всю директорию ставим права — только чтение пользователю:

$ chmod 700 ./.ssh
$ chmod 600 ./.ssh/key

Затем открытый ключ (key.pub) сохраняет на сервере в домашнем каталоге той учётной записи, куда он хочет войти в файле ~/.ssh/authorized_keys.
$ cat ~/.ssh/key.pub | ssh @ "cat - >> ~/.ssh/authorized_keys"
Так же для безопасности:
$ chown -R user /home/user/.ssh
$ chmod 700 /home/user/.ssh/
$ chmod 600 /home/user/.ssh/authorized_keys

Теперь проверяем
$ ssh [user]@[remote_server]
Если при создании ключа мы задали пароль, то при первом подключении его нужно будет ввести
Все должно работать и пускать без проблем, в случаи чего смотрим /var/log/auth.log
$ nano /var/log/auth.log
Так же можно убедиться что на сервере разрешена авторизация по ключу (установлено дефолту), для этого в файле /etc/ssh/sshd_config должны быть строки:
$ nano /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Если на сервере вообще хотим запретить авторизацию по паролям, выставляем параметр в /etc/ssh/sshd_config:

PasswordAuthentication no
PermitEmptyPasswords no

Читаем еще:

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.
Необходимо войти на сайт, чтобы написать комментарий.
#

//