Портал > База знаний > Администрирование > SSH: авторизация по ключу


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




Перебор паролей - это обычное явление в сети Интернет.
В большинстве случаев подбор паролей осуществляется ботами в автоматическом режиме, т.е. сканируются подсети, определяются отвечающие IP, и потом происходит попытка входа на сервер по найденному IP.
Чтобы уберечь сервер от взлома, или как минимум снизить шанс, в качестве пароля используйте от 9 случайных символов, т.к. он не сможет быть подобран за короткое время. Проверить надёжность вашего пароля можно, например, здесь.

Более надёжное решение - доступ к серверу по ключу. А если необходимо заходить на несколько серверов, то это решение будет даже удобным.

Для того, чтобы настроить доступ по ключу, необходимо сначала сгенерировать его.

Создание ключей.
Это можно сделать, к примеру, здесь или на своём компьютере с помощью необходимых для этого утилит.

Как это сделать, если у вас на компьютере Windows:
1. Запустите приложение PuTTYgen, которое устанавливается вместе с PuTTY.
2. Выберите тип ключа RSA (SSH2-RSA в более старых версиях), и нажмите Generate.
Generate keys by PuTTYgen
3. В процессе генерации ключей несколько раз произвольно проведите мышкой по экрану приложения для создания случайных величин, используемых для ключей.
Generate keys step 2
4. По завершению создания открытый (публичный) ключ выводится на экран, а закрытый (приватный) хранится в памяти приложения.
Чтобы сохранить эти ключи, нажмите Save public key и Save private key, выбрав путь для сохранения каждого (при сохранении приватного ключа PuTTY спросит, уверены ли вы в его сохранении без использования защитной фразы - нужно согласиться)

Saving keys

Как создать ключи, если у вас Linux, iOS или MacOS:
1. Откройте терминал и запустите команду (должна быть установлена утилита openssh):
ssh-keygen -t rsa -b 2048
Сначала вам будет предложено выбрать путь для сохранения пары ключей:
Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):
можете нажать Enter, и ключи будут сохранены в директорию .ssh внутри вашей домашней директории

3. При запросах на защитную фразу для ключа нажмите Enter, если не хотите каждый раз вводить пароль при подключении:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
4. Пара ключей готовы (приватный и публичный). Вы увидите по завершению пути к ключам и дополнительную информацию:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/UoMa0lSH/A+G68aCYiQQToVKgwbEUKVTqLhlDI0GI4 root@my.server
The key's randomart image is:
+---[RSA 2048]----+
|&O=o. . |
|%@.o o |
|E=+ . o |
|o+ o . . + . |
| . . o S * |
| + * * |
| * + o |
| . o o |
| ..o |
+----[SHA256]-----+

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


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

Для пользователей Windows:
1. Публичный ключ (имеет расширение .pub) необходимо скопировать на сервер, к которому хотите подключаться, в файл authorized_keys (используйте WinSCP или другой клиент для работы с файлами на удалённом Linux-сервере).
Вы также можете скопировать файл с публичным ключом целиком на сервер, чтоб его копия на всякий случай хранилась в папке /root/.ssh
Posting keys
2. Откройте текстовым редактором два файла одновременно: файл authorized_keys через WinSCP и файл, в который вы сохранили публичный ключ на локальном компьютере.
Скопируйте содержимое ключа в authorized_keys, сохраните и закройте файл в WinSCP.
Posting keys

Для пользователей Linux, MacOS или iOS:
1. После создания ключей просто выполните команду
ssh-copy-id -i ~/.ssh/id_rsa user@host
где ~/.ssh/id_rsa - путь до приватного ключа (можно не указывать, если это id_rsa, он будет использоваться по умолчанию)
user@host - имя пользователя и IP-адрес сервера, разделённые символом @

После выполнения данных действий можно отключить на сервере аутентификацию по паролю и использовать только SSH-ключ.
Для этого подключитесь к серверу по SSH, используя пароль, и откройте файл /etc/ssh/sshd_config для редактирования.
Убедитесь, что там указан правильный путь к публичным ключам SSH, установите значение no у параметра PasswordAuthentication
SSH password off
После внесения изменений в конфигйрационный файл, перезапустите на сервере службу sshd:
service sshd restart или service ssh restart в зависмости от используемого дистрибутива ОС.

Вход по ключу.
Пользователям Windows.
При запуске PuTTY укажите путь к закрытому ключу на локальном компьютере. Для этого во вкладке Connections > Auth выберите необходимый путь.
PuTTY entering by key

При подключении появится предупреждение о том, что раньше вы не использовали ключ для авторизации на этом сервере.
Нажмите Yes.

Когда вы видите предупреждение при первом входе по ключу, то это нормально. Однако, если такое возникает на сервере, на котором вы уже авторизовывались, то либо на сервере были изменены ключи, либо сервер является фейковым.
В случае успешной аутентификации по SSH-ключу вы получите доступ к командной строке сервера и сообщение вида
Authenticating with public key "rsa-key-20190502"
где rsa-key-20190502 — имя применённого закрытого ключа, указанное вами в файле authorized_keys.

Пользователям Linux, MacOS или iOS:
Вход осуществляется командой
ssh -i ~/.ssh/id_rsa user@host



Этот ответ был полезен?

Добавить в избранное Добавить в избранное    Распечатать статью Распечатать статью

Также читают