SSH - авторизация по ключу из Windows. Putty - беспарольная авторизация

Основной принцип работы авторизации по ключам: пользователь создает свой приватный ключ, на основе его генерирует публичный ключ и размещает его на сервере(ах), на который планирует заходить по SSH. Публичный ключ не является секретом и может быть разослан сторонним не доверенным людям для того, чтобы они могли выдать вам доступ по SSH к любым, подконтрольным им серверам или другому оборудованию.

Приватный ключ должен всегда храниться исключительно у его владельца. Для большей надежности на приватный ключ можно установить пароль - в этом случае воспользоваться им можно будет только зная парольную фразу. Восстановить пароль возможно исключительно методом перебора (brutforce), но если парольная фраза будет состоять из 12 и более символов, решить такую задачу будет возможно только на достаточно мощном оборудовании за весьма продолжительное время. В случае утери приватного ключа необходимо сгенерировать новый и заменить все публичные ключи.

Основное преимущество ключей в том, что они, в отличие от паролей, не передаются по сети и не могут быть скомпрометированы путем расшифровки трафика. Как это работает весьма доступно рассказано в этом видео: Алгоритм Диффи-Хеллмана.

Putty

Самая распространенная программа для доступа по SSH в Windows - Putty. Официальный сайт, где можно скачать инсталлятор и исходные коды ПО: chiark.greenend.org.uk. Putty распространяется бесплатно.

Для авторизации по ключу понадобится 3 программы, входящие в состав Putty: putty.exe, puttygen.exe и pageant.exe - можно скачать инсталлятор (putty-0.XX-installer.msi), который установит все сразу, либо же скачать каждую утилиту отдельно. Все утилиты желательно хранить в директории(ях), которые не содержат пробелов, например сразу после установки переместить все файлы Putty из C:\Program Files\Putty в C:\Putty - для авторизации по ключам через Putty это не критично, но директории с пробелами могут сыграть злую шутку в будущем, например, при настройке авторизации по ключам в Git.

Создание ключа в Putty - Puttygen

За создание и работу с ключами отвечает утилита puttygen.exe. Запустите её и оставьте значения по умолчанию:

  • "Type of key to generate": SSH-2 RSA
  • "Number of bits in a generated key": 2048,

После этого нажмите кнопку "Generate". Теперь необходимо перемещать указатель мыши по экрану, пока не будет сгенерирован ключ - это займет пару десятков секунд. После этого можно задать пароль для приватного ключа (заполнить Key passphrase и повторить пароль в Confirm passphrase), комментарий (будет доступен всем, кто получит доступ к публичному ключу) и сохранить приватный ключ в надежное место, нажав на кнопку "Save private key". Файл ключа RSA 2048 bit будет занимать около 500 байт.

Приватный ключ Putty сохраняется в файл с расширением ppk и будет работать только с Putty. Если необходимо использовать приватный ключ на компьютере с Linux + OpenSSH его необходимо конвертировать в формат OpenSSH воспользовавшись верхним меню утилиты "PuTTY Key Generator": Conversion -> Export OpenSSH key.

Публичный ключ можно получить в любой момент, загрузив приватный в puttygen.exe (кнопка "Load") и сохранить его нажатием кнопки "Save public key". Стоит только учесть один важный момент: для использования публичного ключа в OpenSSH сохраненный файл не подойдет, так как для OpenSSH необходимо, чтобы публичные ключи в authorized_keys были одной строкой без лишних символов. Получить непрерывный ключ можно скопировав его из поля "Public key for pasting into OpenSSH authorized_keys file" - только будьте внимательны, в этом поле есть полоса прокрутки и скопировать нужно весь публичный ключ.

Подключение к серверу с использованием Putty и авторизации по ключу

Запускаем Putty и настраиваем подключение. Выбираем "Default Settings" и нажимаем кнопку "Load". В Connection->SSH->Auth указываем путь к приватному ключу в поле "Private key file for authentication". Теперь возвращаемся на вкладку Session нажимаем сохранить, чтобы указанные настройки были записаны по-умолчанию.

После нажатия кнопки Open утилита Putty подключится к серверу, если были правильно указаны Host Name и Port (по умолчанию 22) и на черном экране отобразится приглашения для аутентификации такого вида:

login as:

Если на приватный ключ не был установлен пароль, авторизация будет осуществлена сразу после ввода логина и нажатия Enter, иначе появится следующее приглашение:

Authenticating with public key "MY-Rsa-Key"
Passphrase for key "MY-Rsa-Key":

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

"MY-Rsa-Key" - это комментарий к публичному ключу. Если вместо этого появится приглашение на ввод обычного пароля пользователя, например: "test@192.168.1.1's password:", значит проблема, скорее всего, где-то на стороне сервера, который некорректно настроен на авторизацию по ключу для выбранного пользователя. Для того, чтобы Putty произвел авторизацию по ключу необходимо только ввести путь к приватному ключу, как написано выше. Также следует убедиться, что в Connection->SSH->Auth стоит галочка напротив "Attempt authentication using Pageant", которая установлена по умолчанию.

Pageant - хранение приватных ключей в расшифрованном виде

Если ваш ключ используется на более чем одном устройстве или учетной записи, то чтобы не вводить пароль от ключа каждый раз, как вы подключаетесь к серверу, можно воспользоваться утилитой Pageant - Putty Authentication Agent - обеспечит надежную беспарольную аутентификацию. После запуска утилиты нажмите кнопку "Add Key", выберите приватный ключ защищенный паролем и введите от него пароль. Теперь подключение к учетным записям при помощи пароля через Putty не будет требовать ввода пароля от приватного ключа все время, пока этот ключ будет находится в расшифрованном виде в Pageant.

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

В Pageagent следует добавлять только приватные ключи, защищенные паролем. Можно добавить и приватный ключ без пароля, но это действие лишено всякого смысла, так как информацию о том, какой ключ использовать для какого подключения Putty берет из настройки в Connection->SSH->Auth->"Private key file for authentication".

Опубликовано: 2018/12/25
HTML-код ссылки на эту страницу:
<a href="https://petrenco.com/windows.php?txt=720" target="_blank">SSH - авторизация по ключу из Windows, Putty - беспарольная авторизация</a>
39
Добавить комментарий
Ваш e-mail: (не виден посетителям сайта)
Ваше имя:
Комментарий:
Символы с картинки:
Только выделенные поля формы добавления комментариев обязательны к заполнению.