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. Затем открытый ключ (key.pub) сохраняет на сервере в домашнем каталоге той учётной записи, куда он хочет войти в файле ~/.ssh/authorized_keys.

$ cat ~/.ssh/key.pub | ssh [user]@[remote_server] "cat - >> ~/.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

Понравилась статья? Порекомендуй друзьям нажав на кнопку соцсетей.

Желаете получать свежие статьи? Подпишитесь на рассылку.

Введите для подписки email адрес:

comments powered by Disqus