Авторизация SSH по ключу

https://software.opensuse.org/421/en

 


Для того, чтобы  сделать авторизацию в терминале без пароля нам необходимо выполнить несколько шагов.

На машине, с которой собираемся выходить по SSH выполняем команды :

cd ~/.ssh/
ssh-keygen

На все вопросы отвечаем нажатием на Enter, если понадобится на ключ установить пароль, то вводим passphrase  будут созданы два файла :

~/.ssh/id_rsa  - приватный ключ, который нужно хранить у себя.
~/.ssh/id_rsa.pub - публичный ключ, его нужно будет положить на тот хост, куда будем заходить без пароля.

Меняем права на приватный ключ :

chmod 600 /home/user/.ssh/id_rsa

Теперь нам необходимо публичный ключ id_rsa.pub переименовать  authorized_keys и скопировать на сервер  в директорию /home/user/.ssh (если такой директории .ssh нет, то создаем и кладем туда публичный ключ)

Осталось только убедиться, что демон sshd правильно настроен. В файле /etc/ssh/sshd_config должны быть раскомментированы строчки :

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

Если не раскомментированы (перед ними стоит #), то редактируем файл и перезапускаем демон sshd  /etc/init.d/sshd restart

Проверяем :   ssh user@ваш хост

Если всё правильно, то ssh должен пустить без пароля.

Вышеописанная авторизация  было сделано как для пользователя.
Если же вы захотите сделать тоже самое для root_а то никакой разницы за исключением того, что публичный файл id_rsa.pub кладете в директорию root_a в /root/.ssh

Конечно, многие знают, что подобного рода авторизация еще не дает полностью уверенность в том, что  ваш сервер в безопасности, но авторизация с ключом  это удобно и безопасно.

Еще можно закрыть полностью доступ . То есть вход на сервер будет только с ключом. Это, конечно, даст больше безопасности. Для этого Вам необходимо войти  у себя на сервере в директорию /etc/ssh/sshd_config и найти там строки

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Строки должны быть раскомментированы и стоять везде должно no
Далее сохранить
и перезапустить ssh       командой  /etc/init.d/sshd restart или service sshd restart

Всем удачи!