
Secure Shell (SSH) — это криптографический сетевой протокол, используемый для безопасного соединения между клиентом и сервером и поддерживающий различные механизмы аутентификации.
Два наиболее популярных механизма — это аутентификация по паролям и аутентификация по открытым ключам. Использование SSH-ключей более безопасно и удобно, чем традиционная аутентификация по паролям.
В этом руководстве объясняется, как сгенерировать SSH-ключи в Windows с помощью PuTTYgen. Мы также покажем, как настроить аутентификацию на основе SSH-ключей и подключаться к удалённым серверам Linux без ввода пароля.
Загрузка PuTTYgen
PuTTYgen — это утилита с открытым исходным кодом, которая позволяет генерировать SSH-ключи для самого популярного Windows SSH-клиента PuTTY .
PuTTYgen доступен в виде отдельного исполняемого файла, а также входит в состав установочного пакета PuTTY (.msi). Если у вас не установлен PuTTYgen, перейдите на страницу загрузки PuTTY и скачайте установочный пакет PuTTY. Установка проста: дважды щёлкните по установочному пакету и следуйте инструкциям.
Создание ключей SSH с помощью PuTTYgen
Чтобы сгенерировать пару ключей SSH в Windows с помощью PuTTYgen, выполните следующие действия:
-
Запустите PuTTYgen, дважды щелкнув по его файлу «.exe» или перейдя в меню «Пуск» Windows → PuTTY (64-разрядная версия) → PuTTYgen.

В блоке «Тип генерируемого ключа» оставьте значение по умолчанию RSA. В поле «Количество бит в генерируемом ключе» оставьте значение по умолчанию 2048, достаточное для большинства случаев. При желании вы можете изменить его на 4096.
-
Нажмите кнопку «Сгенерировать», чтобы начать процесс генерации новой пары ключей.

Вам будет предложено навести указатель мыши на пустую область раздела «Ключ», чтобы сгенерировать случайный эффект. По мере перемещения указателя зелёная полоса прогресса будет двигаться. Процесс должен занять несколько секунд.
-
После генерации открытого ключа он отобразится в блоке «Ключ».

Если вы хотите установить парольную фразу, введите её в поле «Ключевая парольная фраза» и подтвердите её в поле «Подтверждение парольной фразы». Если вы не хотите использовать парольную фразу, оставьте поля пустыми.
Рекомендуется использовать парольную фразу, если файлы закрытых ключей предназначены для интерактивного использования. В противном случае, при генерации ключа для автоматизации, парольная фраза может быть задана без неё.
Парольная фраза добавляет дополнительный уровень безопасности, защищая закрытый ключ от несанкционированного использования.
Если задана парольная фраза, ее необходимо вводить каждый раз при использовании закрытого ключа.
-
Сохраните закрытый ключ, нажав кнопку «Сохранить закрытый ключ». Вы можете сохранить файл в любом каталоге как файл с расширением «.ppk» (PuTTY Private Key), но рекомендуется сохранить его в месте, где его можно будет легко найти. Обычно для файла закрытого ключа используется описательное имя.
При желании вы также можете сохранить открытый ключ, хотя его можно будет сгенерировать позже, загрузив закрытый ключ.
-
Щёлкните правой кнопкой мыши по текстовому полю «Открытый ключ для вставки в файл OpenSSH author_keys» и выберите все символы, нажав «Выделить все». Откройте текстовый редактор, вставьте символы и сохраните файл. Убедитесь, что вы вставляете весь ключ целиком. Рекомендуется сохранить файл в том же каталоге, где был сохранён закрытый ключ, используя то же имя и расширение «.txt» или «.pub».

Это ключ, который вам следует добавить на удаленный сервер Linux.
Копирование открытого ключа на сервер
Теперь, когда пара ключей SSH сгенерирована, следующим шагом будет копирование открытого ключа на сервер, которым вы хотите управлять.
Запустите программу PuTTY и войдите на удаленный сервер Linux.
Если ваш пользовательский каталог SSH не существует, создайте его с помощью команды mkdir и установите правильные разрешения:
mkdir -p ~/.sshchmod 0700 ~/.ssh
Откройте текстовый редактор и вставьте открытый ключ, скопированный на шаге 4 при генерации пары ключей, в файл ~/.ssh/authorized_keys :
nano ~/.ssh/authorized_keys
Весь текст открытого ключа должен быть на одной строке.
Выполните следующую команду chmod , чтобы убедиться, что только ваш пользователь сможет читать и записывать файл ~/.ssh/authorized_keys :
chmod 0600 ~/.ssh/authorized_keys
Войдите на сервер, используя ключи SSH
Pageant — это агент аутентификации PuTTY SSH, хранящий закрытые ключи в памяти. Двоичный файл Pageant входит в состав установочного пакета PuTTY .msi и может быть запущен через меню Windows «Пуск» → PuTTY (64-разрядная версия) → Pageant.
При запуске Pageant в системном трее появится его значок. Дважды щелкните по нему, и откроется окно Pageant.
Чтобы загрузить ключ, нажмите кнопку «Добавить ключ», после чего откроется диалоговое окно создания нового файла. Найдите файл закрытого ключа и нажмите «Открыть». Если вы не указали пароль, ключ будет загружен немедленно. В противном случае вам будет предложено ввести пароль.

Введите пароль, и Pageant загрузит закрытый ключ.
После выполнения описанных выше шагов вы сможете войти на удаленный сервер без ввода пароля.
Чтобы проверить это, откройте новый сеанс PuTTY SSH и попробуйте войти на удалённый сервер. PuTTY будет использовать загруженный ключ, и вы войдете на сервер без ввода пароля.
Отключение аутентификации по паролю SSH
Чтобы обеспечить дополнительный уровень безопасности вашего сервера, вы можете отключить аутентификацию по паролю для SSH.
Перед отключением аутентификации по паролю SSH убедитесь, что вы можете войти на свой сервер без пароля, а пользователь, под которым вы входите, имеет права sudo .
Войдите на удаленный сервер и откройте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
Найдите следующие директивы и измените их следующим образом:
/etc/ssh/sshd_config
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
После завершения сохраните файл и перезапустите службу SSH, введя:
sudo systemctl restart ssh
На этом этапе аутентификация по паролю отключается.
Заключение
В этом руководстве вы узнали, как сгенерировать новую пару ключей SSH и настроить аутентификацию на основе ключей SSH. Вы можете добавить один и тот же ключ на несколько удалённых серверов. Мы также показали, как отключить аутентификацию по паролю SSH и добавить дополнительный уровень безопасности для вашего сервера.
По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию снизит риск автоматизированных атак.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства