Site icon IT Draft

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

Установка VPN сервера Wireguard в Centos 8. Site-to-site VPN

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

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

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

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

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


[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/

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

[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 можно передать публичный ключ всем серверам, к которым в последствии мы будем подключаться.

Exit mobile version