Краткая инструкция по настройке подключения к серверу SSH по ключу без использования пароля.
Создадим пару ключей на клиенте
# ssh-keygen -t rsa -b 4096
путь оставляем по умолчанию
Enter file in which to save the key (/home/username/.ssh/id_rsa):
а passphrase — на усмотрение, но можно оставить пустым, чтобы не вводить её каждый раз при входе
Enter passphrase (empty for no passphrase):
Копируем открытый ключ с клиента на сервер
# ssh-copy-id tux@192.168.1.30
Консоль запросит пароль пользователя tux, который создан на сервере
На сервере у пользователя tux появится файл ~/.ssh/authorized_keys, который полностью совпадает с открытым ключом id_rsa.pub клиента.
При использовании FreeBSD на сервере у пользователя в домашнем каталоге необходимо создать директорию .ssh/ и в ней файл authorized_keys
# mkdir ~/.ssh/ # touch ~/.ssh/authorized_keys
и в этот файл с клиентской машины вставить содержимое файла id_rsa.pub
Для этого на клиенте выводим открытый ключ в консоль
# cat ~/.ssh/id_rsa.pub
Копируем его в буфер и на сервере открываем файл authorized_keys
# vi ~/.ssh/authorized_keys
и вставляем его туда полностью.
Для того, чтобы запретить вход на сервер с помощью пароля, необходимо в файле /etc/ssh/sshd_config прописать такую строчку:
PasswordAuthentication no
и перезапустить службу sshd
на CentOS, Debian и Ubuntu Server:
# systemctl restart sshd
в Gentoo:
# rc-service sshd restart
на FreeBSD:
# service sshd restart
Теперь на сервер можно войти пользователем tux с помощью ключа
# ssh tux@192.168.1.30
Если passphrase не была задана, то к серверу можно будет подключиться сразу, а иначе — придётся каждый раз её вводить.