Инструкции для UNIX систем

Авторизация по 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):

При нажатии «Enter» ключи будут сохранены в каталог .ssh вашего домашнего каталога.

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

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

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

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

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

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

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

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

  • файл 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. При подключении Вы получите сообщение о том, что раньше не был использован ключ для авторизации на этом сервере.

Нажмите «Yes».

ssh-key-authorization5

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

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

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

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-адрес сервера