Помощь

Подключение с использованием SSH-ключа

Использование SSH-ключа для доступа к серверу предоставляет увеличенную безопасность (путем снижения риска взлома учетной записи) и удобство (благодаря отсутствию необходимости вводить пароль при каждом соединении).

Процесс настройки авторизации с использованием ключей включает создание ключей на локальном компьютере и их последующее копирование на сервер.

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

Linux, MacOS, Windows 10

Создание SSH-ключей

Этот процесс подходит для ОС Linux, MacOS и версий Windows 10 начиная с 1809, так как они включают в себя встроенный SSH-клиент. В случае более ранних версий Windows, используйте инструкции для старых версий Windows (без OpenSSH).

Запустите терминал или Windows PowerShell на вашем компьютере и выполните команду:

ssh-keygen

Вы увидите следующее сообщение:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):

Просто нажмите Enter - ключ будет сохранен в указанной директории по умолчанию.

Затем вам предложат задать пароль (кодовую фразу) для ключа. Вы можете задать его или оставить пустым, нажав Enter. Обратите внимание, что при использовании кодовой фразы, ее потребуется вводить при каждой авторизации по ключу.

Процедура создания ключей завершена, ключи сохранены в директории ~/.ssh/ с именами id_rsa и id_rsa.pub. Теперь необходимо скопировать публичный ключ на сервер.

Копирование ключа на сервер

В терминале выполните следующую команду, заменив user на имя пользователя на сервере и server на IP-адрес вашего сервера:

ssh-copy-id user@server>
# Пример: ssh-copy-id admin@2.59.43.145

Содержимое файла с публичным ключом id_rsa.pub будет скопировано в файл ~/.ssh/authorized_keys на сервере. В дальнейшем вы сможете подключаться к серверу с помощью команды:

ssh user@server>
# Пример: ssh admin@2.59.43.145

Старые версии Windows (без OpenSSH)

Если у вас Windows более старой версии без OpenSSH, вам понадобится программа PuTTYgen. Вы можете скачать ее с официального сайта PuTTY.

Создание SSH-ключей с PuTTYgen

  1. Запустите программу, выберите тип ключа RSA в разделе "Type of key to generate" и нажмите "Generate".
  2. Двигайте мышкой в окне случайным образом, чтобы сгенерировать случайные данные.
  3. После генерации ключа, вы можете задать "Key passphrase" (пароль для ключа). Это необязательно, и вы можете оставить поле пустым. Если вы укажете пароль, он будет запрашиваться при каждой авторизации по ключу.
  4. Сохраните созданные ключи, нажав "Save public key" и "Save private key" под именами, например, id_rsa.pub и mykey.ppk.
  5. Также скопируйте содержимое окна "Public key for pasting…" и сохраните его в текстовом файле. Это потребуется при копировании ключа на сервер.

С этим завершена процедура создания ключей.

Копирование ключа на сервер с помощью Pageant

Для копирования ключей вам понадобится Pageant. Вы можете скачать его с официального сайта PuTTY.

  1. Подключитесь к серверу по SSH и выполните следующую команду для создания директории и файла на сервере для хранения ключей:
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
  1. Откройте файл ~/.ssh/authorized_keys с помощью текстового редактора:
nano ~/.ssh/authorized_keys
  1. Вставьте в файл содержимое вашего публичного ключа, которое вы скопировали ранее из PuTTYgen, и сохраните файл.
  2. Запустите Pageant - его иконка появится в трее. Щелкните правой кнопкой мыши и выберите "Add Key".
  3. В открывшемся окне укажите путь к вашему приватному ключу mykey.ppk, который вы сохраняли ранее, и нажмите "Open". Если при создании ключа вы указали пароль, Pageant запросит его на этом этапе.
  4. Для проверки работоспособности авторизации по ключу снова запустите PuTTY, подключитесь к серверу и введите свой логин. Если всё настроено верно, вы увидите подобное сообщение в окне консоли:
Authenticating with public key "rsa-key-20151220" from agent

Отключение доступа по паролю

Чтобы разрешить доступ к серверу только через ключ, вы должны отключить авторизацию по паролю. Для этого внесите изменения в файл /etc/ssh/sshd_config.

  1. Откройте файл с помощью следующей команды:
sudo nano /etc/ssh/sshd_config
  1. Найдите строку PasswordAuthentication и измените ее на: PasswordAuthentication no.
  2. Сохраните изменения и перезапустите службу SSH:
sudo service ssh restart

Если вам все равно запрашивают пароль после этих действий, проверьте, есть ли файл 50-cloud-init.conf с директивой PasswordAuthentication yes в директории /etc/ssh/sshd_config.d/. Если файл существует, удалите его и перезапустите службу SSH.

Остались вопросы - пишите