ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Вход без пароля с помощью ключей SSH

Вход без пароля с помощью ключей SSH

SSH или Secure Shell является самым популярным и надежным UNIX на основе криптографического сетевого протокола. Он может быть использован для безопасной передачи данных, удаленного входа на сервер, удаленного выполнения команд, а также многих других защищенных сетевых сервисов между двумя сетевыми серверами.

Как правило, проверка подлинности пароля используется для подключения к удаленному серверу через SSH. В этом блоге уроке мы покажем вам, как войти на удаленный Linux без ввода пароля, используя ключи SSH. Этот метод является более безопасным, чем с помощью пароля.

Прежде всего, нам нужно сгенерировать открытые и закрытые ключи. Мы будем использовать RSA (Rivest-Shamir-Adleman) криптосистемы.

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): PRESS ENTER
Enter passphrase (empty for no passphrase): PRESS ENTER
Enter same passphrase again: PRESS ENTER
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:
4a:91:e0:19:89:37:41:ce:3e:ff:56:2c:02:eb:65:cb root@LOCALSERVER
The key's randomart image is:
+--[ RSA 2048]----+
|   o=o           |
|  .+++ .         |
|   .=.o          |
|   ..  .         |
|    oo. S.       |
|    .++.. o      |
|   . +oo o       |
|    . E..        |
|       ..        |
+-----------------+

 

Это позволит создать 2048 бит открытых и закрытых ключей в каталоге /root/.ssh/ на вашем сервере

ls /root/.ssh/
id_rsa  id_rsa.pub

 

Создайте новый каталог ‘.ssh’ на удаленном сервере

ssh root@REMOTE_SERVER mkdir -p .ssh

 

Скопируйте только что созданный ключ на удаленный сервер, на который вы хотите заходить по SSH без пароля

cat /root/.ssh/id_rsa.pub | ssh root@REMOTE_SERVER 'cat >> /root/.ssh/authorized_keys'

 

Изменение разрешений для открытого ключа и каталога .ssh

ssh root@REMOTE_SERVER "chmod 700 .ssh; chmod 600 .ssh/authorized_keys"

 

Теперь войдите на удаленный сервер и настройте сервер SSH для принятия ключа аутентификации. Откройте файл конфигурации SSH

nano /etc/ssh/sshd_config

 

И убедитесь, что следующие три варианта не закомментированы, ‘RSAAuthentication’ и ‘PubkeyAuthentication’ установлены в ‘yes’.

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

 

Сохраните изменения и перезапустите сервер SSH

/etc/init.d/sshd restart

 

Это все. Вы должны быть войти на удаленный сервер без пароля

ssh REMOTE_SERVER

Вход без пароля с помощью ключей SSH

PS. Если вам понравился этот пост пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.

Exit mobile version