Sshd/windows

При работе в MS Windows для доступа по SSH к другим компьютерам потребуется скачать SSH-клиент (putty) и утилиту для генерации ключей (puttygen).


 * Создание ключей в MS Windows
 * 1) Запустить puttygen. Если за вас генерирует ключи другой человек на Unix, то он должен учесть, что форматы отличаются и нужен тот, который годится для работы в MS Windows (см. ниже)
 * 2) По умолчанию выбран тип ключа SSH2-RSA с длиной 1024 бита. Можно оставить этот вариант.
 * 3) Щелкнуть по кнопке Generate и поводить курсором мыши, как будет предложено (для накопления случайных данных).
 * 4) Ввести пароль для защиты приватного ключа (опциональное действие)
 * 5) Из окна самой программы скопировать публичный ключ (этот код отчитается от того, что образуется при использовании кнопки Save public) - он в формате OpenSSH. Сохранить его в файл с именем authorized_keys, его переслать администратору сервера, прикрепив в письму.
 * 6) Save private key для сохранения приватного ключа. Полученный файл в защищённом месте хранить. Но если вы защитили ключ надёжным паролем, то утрата ключа не фатальна.


 * Использование
 * 1) Запустить putty
 * 2) Указать приватный ключ
 * 3) Указать имя хоста (или его IP)
 * 4) Указать имя-логин, которое вы сообщили при запросе SSH-доступа
 * 5) Подключиться и ввести пароль приватного ключа. Пароль при вводе не дублируется показом звездочек.
 * 6) Откроется диалоговое окно с черным фоном, где в нижней строчке будет приглашение, после которого можно вводить команды.

Ключи SSH не совместимы между MS Windows и Unix-системами (в т.ч. MacOS) и при миграции между системами потребуется конвертация. Сделать это можно посредством puttygen или ssh-keygen -i -f KEYFILE (в Unix).
 * Замечания и проблемы

Если даже копировать ключ из окна, а не файл сохранять. И скопированный текст вручную помещать в файл, то получается невалидный ключ. По причине наличия в нем переносов строк. Их надо убрать вручную. Ниже ключ нерабочий (с переносами)

 BEGIN SSH2 PUBLIC KEY Comment: "rsa-key-20101029" AAAAB3NzaC1yc2EAAAABJQAAAIEA7x0VV5kMdjjVxM6HvYV54whU7wcWAjNIuzeB rY/DaVTcAwVyC+wv+DEpKK1n3WGqy13JlRXPyXbwKd7gsbuGSdOmrK0y1Dkk24Vm mYpa57m9Qfyg4ivoQv0sP2jG7tHjPjd1k5KSsvE/1r5RGI8Ds1eClHYZ6dYlspZD TbY85iM= END SSH2 PUBLIC KEY 

По умолчанию в puttygen (если просто воспользоваться кнопкой save public kay) публичный ключ сохраняется в формате, который не годится для использования в Unix. Визуально этот ключ выглядит раза в два короче, чем нормальный, а расширение файла по умолчанию у него ppk. При попытке авторизоваться с его использованием, в логах только записи вида interactive-авторизация. Ниже пример неправильного ключа.

 BEGIN SSH2 PUBLIC KEY Comment: "исембаева" AAAAB3NzaC1yc2EAAAABJQAAAIEAqSBCe/3Vp8VQCvscnpJiEGLfklF+LqTB/PUT KZEEwSGrCOQwryoTS38v6TIFytNmq8wMnKZvoW7KDq1AeacbFlte8t2GeQeC4sAx mMq/rtZY3KJx5D/7ryMDgj/Nb6sS7pULJtj5fGVBJd4ymtZmERB6/edD7bd+RB+m VpcvSF0= END SSH2 PUBLIC KEY 

Если потребуется начать использовать ssh-клиен на Unix, то потребуется конвертировать и приватный ключ. На формат указывает вот такое содержимое ключа. Для конвертации сначада import старого ключа и потом из меню Conversions выбрать пункт Export OpenSSH key  PuTTY-User-Key-File-2: ssh-dss Encryption: aes256-cbc Comment: dsa-key-20050225 Public-Lines: 10 Private-Lines: 1  По-видимому, надо удалить переносы строк вручную, чтобы ключ стал работоспособным. В редакторе vi для удаления переносов строк используйте сочетание клавиш Shift+j.

Если вы переходите с Unix на Windows, то также потребуется изменения формата ключа (возможно это поможет сделать тот же puttygen -> Import key - Conversion ->export ssh.com key). Например, если winscp указать ключ в формате OpenSSH, то явно проинформирует, что формат ключа нужно поменять. "Private key '.................' contains key in OpenSSH SSH-2 format. WinSCP support only PuTTY format."