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

Updated 2 years ago by Oleg

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

 

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

 

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

 

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

 

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

 

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

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

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

 

Создание 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 [email protected]

 

где ~/.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).

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

Нажмите «Yes».

 

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

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

 

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

 

Authenticating with public key "key-010103232"

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

 

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

 

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

ssh -i ~/.ssh/id_rsa [email protected]

 

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

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

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

 


How did we do?


IS (opens in a new tab)

Powered by HelpDocs (opens in a new tab)