Перейти к содержимому
Русский
  • Результаты отсутствуют, так как поле поиска является пустым.

Авторизация по SSH-ключу

В этой статье объясняется, как повысить безопасность сервера, заменив аутентификацию по паролю на SSH-ключи.

Брутфорс (взлом с помощью перебора паролей) – одна из самых распространенных угроз в сети Интернет. Даже опытные пользователи часто используют слишком простые пароли, что делает их уязвимыми для атак злоумышленников.  Как правило, подбор паролей выполняется автоматически программами-ботами. Они сканируют подсети, определяют активные IP-адреса, затем происходит попытка входа по найденному адресу.

Рекомендуется создавать пароль как минимум из 9 случайных символов (такой пароль не будет подобран быстро). Проверить надежность Вашего пароля можно на специальном сайте, например, здесь.

Авторизация по SSH-ключу – более надежный способ, по сравнению с использованием пароля. При авторизации на нескольких серверах, SSH-ключ намного удобнее в использовании.

Создать ключ можно с помощью онлайн-сервисов (например, здесь), или на персональном компьютере используя специальные утилиты.

Создание SSH-ключа (Windows)

  1. Рекомендуется использовать приложение PuTTYgen (устанавливается вместе с PuTTY). После запуска укажите тип ключа RSA (SSH2-RSA в более старых версиях), и нажмите «Generate».
    ssh-key-authorization

  2. Во время создания ключей проведите несколько раз курсором мышки в окне программы (для генерации случайных величин, используемых в ключах).
    ssh-key-authorization1

  3. По окончанию процесса генерации сохраните закрытый и открытый ключ, нажав «Save public key» и «Save private key» соответственно  (при сохранении Private key согласиться с сохранением без использования защитной фразы).

ssh-key-authorization2
ssh-key-authorization3

Создание SSH-ключа (Linux/MacOS)

  1. Установите утилиту «Openssh».

  2. Откройте утилиту «Терминал» и запустите команду:

    ssh-keygen -t rsa -b 2048
  3. Выберите путь для сохранения пары ключей.

    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
  4. При нажатии «Enter» ключи будут сохранены в каталог .ssh вашего домашнего каталога.

  5. Если не хотите каждый раз вводить  защитную фразу при использовании приватного ключа, просто нажмите «Enter».

    Enter passphrase (empty for no passphrase):

    Enter same passphrase again:

     

  6. Пара ключей создана. На экран будет выведена дополнительная информация.

    • id_rsa – стандартное название файла приватного (закрытого) ключа

    • id_rsa.pub – стандартное название файла публичного (открытого) ключа. Данный ключ необходимо копировать на серверы, к которым Вы хотите получать доступ при использовании приватного ключа.

Размещение ключей на сервере (Windows)

Public key (имеет расширение .pub) необходимо скопировать на сервер, в файл authorized_keys (рекомендуется использовать WinSCP или другую утилиту для работы с файлами на удаленном Linux-сервере).

  1. Откройте с помощью текстового редактора два файла одновременно:

    • Файл authorized_keys через WinSCP на сервере.

    • Файл, в который был сохранен Public key на локальном компьютере.

  2. Скопируйте содержимое ключа в authorized_keys.

  3. Сохраните и закройте файл authorized_keys в WinSCP.

Размещение ключей на сервере (Linux/MacOS)

  1. После того как были созданы ключи, выполните в утилите «Терминал» команду:

    ssh-copy-id -i ~/.ssh/id_rsa user@host

    где

    • ~/.ssh/id_rsa – путь до закрытого ключа

    • user – имя пользователя

    • host – IP-адрес сервера

  2. Включите на сервере аутентификацию с использованием ключа вместо пароля.

    • Подключитесь к серверу с использованием пароля.
    • Откройте файл /etc/ssh/sshd_config.
    • Проверьте правильность указания пути к публичным ключам.
    • Установите значение no у параметра PasswordAuthentication.
  3. Перезапустите службу sshd на сервере в зависимости от версии ОС:

    service sshd restart

    или

     service ssh restart 

Вход с использованием ключа (Windows)

  1. В PuTTY укажите путь к закрытому ключу на Вашем компьютере (вкладка Connections > Auth).
    ssh-key-authorization4

  2. При подключении Вы получите сообщение о том, что раньше не был использован ключ для авторизации на этом сервере.

  3. Нажмите «Yes».
    ssh-key-authorization

     

    ВНИМАНИЕ! Вы должны увидеть предупреждение ТОЛЬКО при первом входе по ключу!

    Если такое возникает на сервере, на котором Вы уже авторизовались с помощью ключа, то либо на сервере были изменены ключи, либо сервер подменен.

  4. При успешной аутентификации с использованием ключа Вы получите доступ к командной строке сервера и сообщение вида:

    Authenticating with public key "key-010103232" 

где key-010103232 – имя вашего приватного ключа, указанное в файле authorized_keys.  

Вход с использованием ключа (Linux/MacOS)

Для входа выполните команду:

ssh -i ~/.ssh/id_rsa user@host

где

  • ~/.ssh/id_rsa – путь до закрытого ключа

  • user – имя пользователя

  • host – IP-адрес сервера

 Если у вас остались какие-либо вопросы, вы можете задать их в онлайн чате в правом нижнем углу сайта или тикетом в техподдержку