SSH-авторизация по ключу (сертификату) в Centos

SSH-авторизация по сертификату

Есть виртуальная инфраструктура на базе Proxmox, где один виртуальный сервер выполняет роль основного сервера (dev, nginx-proxy) и имеет внешний IP. И есть куча дополнительный виртуальных серверов.

Задача: необходимо настроить возможность авторизоваться с dev-сервера на другие сервера по внутренним IP адресам без ввода пароля.

Подключаемся к dev-серверу и создаем открытый и закрытый ключи

[root@localhost]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rHLydfgdfgdfgcvbcvbcvbG3GM9tosDSERPfsEW8 root@ct-dev-01
The key's randomart image is:
+---[RSA 2048]----+
|^/o. .           |
|*=@=o o          |
|.*+*o+ E         |
|+.+ o o.         |
|+o.  .  S        |
|+.     .         |
|..  o.o.         |
|  . .=. .        |
|  .o  ..         |
+----[SHA256]-----+

В результате выполнения команды сгенерировалось 2 файла в каталоге ~/.ssh/

  • id_rsa.pub — публичный ключ
  • id_rsa — секретный ключ

Копируем наш публичный ключ на сервер, к которому мы будем подключаться без ввода пароля

[root@localhost]# ssh-copy-id root@192.168.12.32
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.12.32's password: 

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'root@192.168.12.32'"
and check to make sure that only the key(s) you wanted were added.

Проверяем:

[root@localhost]# ssh root@192.168.12.32
Last login: Wed Oct  2 09:48:44 2019 from 192.168.12.2
[root@ct-sefton-01 ~]# ll .ssh
total 9
-rw------- 1 root root 396 Oct  2 09:48 authorized_keys
-rw-r--r-- 1 root root 193 Sep 19 10:47 known_hosts

На сервере, которому мы передали публичный ключ, появился файл authorized_keys. Содержимое этого файла и есть содержимое публичного ключа.

Таким образом, используя команду ssh-copy-id можно передать публичный ключ всем серверам, к которым в последствии мы будем подключаться.

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.