SSH-доступ к серверу с использованием ключей (для Linux клиентов)

Выполнить удаленный вход в консоль Linux сервера можно без использования пароля. Для этого используется способ SSH-аутентификации по ключам RSA. Данный метод является более удобным в использовании, а также более безопасным.

В данной статье описана процедура настройки, если подключение выполняется с компьютера с операционной системой Linux (или MacOS)

Для того чтобы настроить данный способ аутентификации необходимо выполнить следующие шаги:

  • Выполните в консоли bash команду ssh-keygen

[user@homepc ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:UPPm+FdPbJWWVbrNNuoGpk7xnD1w8LALMvjtKhbG4qo user@homepc
The key's randomart image is:
+---[RSA 3072]----+
|        o       +|
|       . o     .+|
|      .   oo  .+.|
|      .. +  = .=.|
|    .. oSo.o oo.B|
|   . +. +.=o*..=.|
|  . o .. o+=o+  .|
|   . o  o. ....  |
|E.. . ..oo  ..   |
+----[SHA256]-----+

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

  • Файл приватного ключа - id_rsa
  • Файл публичного ключа - id_rsa.pub

Внимание! Файл приватного ключа должен быть защищен от доступа посторонних лиц. Следите, чтобы этот файл не был скомпрометирован.

  • Выполните команду ssh-keyscan x.x.x.x >>~/.ssh/known_hosts для того чтобы сохранить или обновить отпечаток ключа

Здесь и далее x.x.x.x - IP адрес вашего сервера на хостинге

[user@homepc ~]$ ssh-keyscan x.x.x.x >>~/.ssh/known_hosts
# x.x.x.x:22 SSH-2.0-OpenSSH_7.4
# x.x.x.x:22 SSH-2.0-OpenSSH_7.4
# x.x.x.x:22 SSH-2.0-OpenSSH_7.4

  • Выполните команду ssh-copy-id@x.x.x.x и введите пароль пользователя root, который вы получили при активации сервера на хостинге

[user@homepc ~]$ ssh-copy-id root@91.238.103.8
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.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@91.238.103.8's password: ********

  • Если пароль введен правильно, процедура настройки завершена. Дальше вы сможете подключаться к VPS серверу на хостинге без ввода пароля с помощью команды в консоли:

[user@homepc ~]$ ssh root@x.x.x.x

Для настройки подключения SSH под ОС Windows смотрите статью базы знаний