Если вы решили настроить на сервере ssh авторизацию по ключу, первое, что необходимо сделать — это сгенерировать секретный и публичный RSA-ключи.
После генерации, публичный ключ копируется на сервер, а секретный ключ остается храниться на локальном компьютере.
Для того чтобы сгенерировать пары ключей выполните команду:
ssh-keygen -t rsa -b 2048
Программа предложит указать каталог, в который будут будут сохранены файлы ключей и попросит ввести секретную фразу.
Нажмите Enter чтобы использовать параметры по умолчанию, тогда программа сохранит ключи в каталог .ssh в домашней директории пользователя.
Для перехода в каталог с ключами выполните команду:
cd ~/.ssh
В каталоге будут лежать два файла:
-
id_rsa — секретный ключ.
-
id_rsa.pub — публичный ключ.
Скопируйте в надежное место файл секретного ключа, а публичный ключ перенесите на сервер.
Заносим сгенерированный открытый ключ в авторизованные ключи сервера. Для этого скопируйте содержимое id_rsa.pub в конец файла authorized_keys:
cat id_rsa.pub >> ~/.ssh/authorized_keys
Настройте ssh авторизацию по ключу в конфиге OpenSSH сервера:
nano /etc/ssh/sshd_config
Приведите текущие настройки в соответствие параметрам ниже:
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
Чтобы отключить вход по паролю, изменяем значение параметра:
UseLogin no
Установите права:
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
Далее выполните перезапуск ssh сервера.
service sshd restart
На этом настройка сервера закончена.
Настройка ssh авторизации по ключу в Linux
Для ssh авторизации по ключу в Linux, создайте файл ~/.ssh/config и скопируйте в него строки ниже. Затем по аналогии укажите адрес сервера и расположение файла секретного ключа.
Host server.net
IdentityFile ~/.ssh/keys/id_rsa
Устанавливаем права на файл:
chmod 600 ~/.ssh/config
Чтобы зайти на сервер используя SSH авторизация по ключу, выполните команду:
ssh user@server.net
Если хотите вручную указать размещение ключа, выполните команду:
ssh -i ~/.ssh/id_rsa user@server.net