SSH-ключи
Удаленное подключение к серверу всегда требует аутентификации клиента, чтобы несанкционированные лица не получили доступ. Базовым методом аутентификации является использование пароля. Но у паролей есть один недостаток — их можно взломать, особенно если владелец сервера не позаботился о сложности пароля.
Для SSH‑подключений к серверам Linux рекомендуется альтернативный метод — аутентификация с помощью SSH‑ключей. Эти ключи представляют собой пару — закрытый ключ и открытый ключ. Закрытый ключ необходимо хранить, соответственно, в приватной среде клиента, а открытый ключ отправляется на сервер и помещается в authorized_keys файл.
Использование SSH‑ключей не является системным требованием платформы Navixy, но настоятельно рекомендуется владельцам серверов по соображениям безопасности.
Не передавайте закрытые ключи кому-либо, кому вы не доверяете. Если вам нужно предоставить доступ к вашему серверу третьей стороне, нет необходимости делиться собственным ключом. Вместо этого вы можете запросить у них открытый ключ и временно добавить его на свой сервер, а затем удалить после завершения работ.
Создание SSH‑ключей в Linux
Если на вашей рабочей станции используется ОС на базе Linux, вам необходимо использовать пакет openssh . Он может быть предустановлен или может потребовать дополнительной установки. В Ubuntu и Debian он устанавливается следующей командой:
apt -y install openssh-serverДля других дистрибутивов команда может отличаться.
Чтобы начать генерацию ключей, выполните команду:
ssh-keygenВам будет предложено указать путь к файлу, где будут размещены ключи. Вы можете оставить расположение по умолчанию (в скобках), нажав Enter, либо указать собственный путь и имя файла.
Далее вам будет предложено ввести парольную фразу. Это дополнительная мера безопасности для защиты вашего ключа от использования третьими лицами в случае его компрометации. Этот шаг необязателен.

После успешной генерации пары ключей вы увидите уведомление:

При использовании расположения по умолчанию открытый ключ сохраняется в /root/.ssh/id_rsa.pub, а закрытый ключ — в /root/.ssh/id_rsa.
Теперь необходимо скопировать открытый ключ на ваш сервер, в каталог пользователя, от имени которого будет выполняться удаленное подключение. Предположим, что имя пользователя — navixy. Подключитесь к вашему серверу и отредактируйте файл в любом текстовом редакторе, например:
Укажите содержимое вашего открытого ключа после ssh-rsa. Вы можете указать краткий комментарий после ключа, чтобы пояснить его назначение.

Сохраните файл.
Теперь вы можете подключиться к серверу, используя вновь созданный SSH‑ключ.
После этого вы можете отключить аутентификацию по паролю на вашем сервере.
Создание SSH‑ключей в Windows
Если вы используете Windows, наиболее распространенным клиентом для подключения к серверу по SSH является PuTTY. Существует также множество альтернативных клиентов, но все они по сути служат одной цели, поэтому выбор за вами.
В Windows генерация SSH‑ключей выполняется с помощью утилиты PuTTYgen , которая входит в состав установочного пакета PuTTY.
Запустите PuTTYgen из меню «Пуск».

Убедитесь, что выбран тип ключа RSA и нажмите Generate.

В процессе генерации ключа несколько раз перемещайте курсор мыши по окну приложения для создания случайных значений.

После завершения создания ключа открытый ключ будет отображен в PuTTYgen, а закрытый ключ будет находиться в памяти приложения. Чтобы сохранить эти ключи, нажмите Save public key и Save private key. Укажите каталог на вашем ПК для хранения файлов ключей.

При сохранении закрытого ключа, если поле Key passphrase не заполнено, появится запрос «Are you sure you want to save this key without a passphrase to protect it?». Нажмите Yes или вернитесь к предыдущему окну, чтобы указать парольную фразу.

Теперь открытый ключ необходимо скопировать на ваш сервер в authorized_keys файл. Он расположен в каталоге пользователя, от имени которого будет выполняться удаленное подключение. Предположим, что имя пользователя — navixy, и в этом случае файл будет находиться по адресу /home/navixy/.ssh/authorized_keys.
Используйте любой клиент передачи файлов для работы с файлами на удаленном сервере Linux. Здесь мы опишем процесс с использованием WinSCP как наиболее популярного клиента.
Откройте authorized_keys файл через WinSCP для редактирования.

Скопируйте значение открытого ключа из окна PuTTYgen или из ранее сохраненного файла. Ключ должен начинаться с ssh-rsa. Если какой‑то ключ уже сохранен в authorized_keys файле, добавьте новый ключ после него, начиная с новой строки.

Сохраните файл.
Теперь вы можете подключиться к вашему серверу через PuTTY, используя файл закрытого ключа. Вам нужно указать путь к нему на вашем ПК. Для этого выберите требуемый путь в разделе Connection - SSH - Auth - Credentials (новая версия PuTTY) или Connection - SSH - Auth (старая версия), в поле Private key for authentication .

Укажите имя пользователя и адрес сервера (например, [email protected]) на вкладке Session и подключитесь к вашему серверу. Если все сделано правильно, соединение будет установлено без необходимости ввода пароля.
SSH‑ключи в облачных решениях
При развертывании виртуальной машины в облачных сервисах, таких как AWS, MS Azure и аналогичных, вы можете выпустить SSH‑ключ в момент создания машины или добавить существующий ключ, если он уже был создан ранее. При этом облачный сервис автоматически вставит открытый ключ в authorzed_keys пользователя на сервере. Все, что вам нужно сделать после развертывания сервера, — установить SSH‑подключение с использованием закрытого ключа.
Отключение аутентификации по паролю
После успешной настройки аутентификации по ключу вам нет необходимости сохранять аутентификацию по паролю. В целях безопасности вы можете отключить ее.
Подключитесь к серверу по SSH и откройте для редактирования файл sshd_config , например с помощью редактора Vi:
Найдите в файле параметр PasswordAuthentication и установите его значение в no:
Сохраните файл. Перезапустите службу sshd:
Теперь вы можете устанавливать удаленное подключение к вашему серверу по SSH только с использованием ранее добавленного SSH‑ключа. Аутентификация по паролю отключена.
Последнее обновление
Это было полезно?