Сбылась мечта идиота таки я настроил сабж у себя на серваке. Теперь можно заходить по ssh, не вводя пароль, используя авторизацию с использованием специального ключевого файлика.
Оказалось, что всё не так просто во-первых у меня оказалась довольно старая версия sshd, которая ни в какую не хотела воспринимать файлик authorized_keys в какой бы каталог его не подкладывал и какие бы пермишнсы ему не назначал.
После установки новой версии cygwin служба sshd наотрез отказалась запускаться, ругаясь на отсутствие некой экспортируемой функции в файлике cygwin1.dll. Ну про эту байку мы уже знаем плавали. В своё время я довольно долго и безуспешно пытался запустить sshd в качестве службы у себя на компе с подобным результатом. Ответ нашёлся в ньюсовой конференции news:comp.security.ssh мне посоветовали поискать у себя на дисках более старые версии библиотеки cygwin1.dll и поудалять её нафик. Этот, казалось бы, довольно очевидный шаг мне как-то не приходил до этого в голову, но благодаря вышеописанной ньюсгруппе этот баг был обойдён, за что огромное спасибо её подписчикам.
Таким образом, алгоритм установки службы sshd в Windows выглядит следующим образом:
1. Идём на http://sources.redhat.com/cygwin и качаем оттуда setup.exe
2. Запускаем свежевыкачаный файл, устанавливаем cygwin, не забыв указать в категории Net модуль openssh для поддежрки ssh и в категории Admin модуль cygrunsrv для запуска процесса sshd, как службы Windows.
3. После установки cygwin запускаем его, и в консоли из командной строки набираем ssh-host-config скрипт для настройки службы sshd.
4. Для формирования файлика passwd не забываем запустить mkpasswd /l > /etc/passwd. Это необходимо для авторизации.
5. Запускаем службу sshd командой net start sshd. Если при запуске служба ругается на что-то вроде «Cant find __blah-blah-blah entry in cygwin1.dll», то шерстим по всем папкам на диске и удаляем старые версии библиотеки cygwin1.dll в папках, в особенности перечисленных в переменной окружения PATH.
6. Далее, если необходимо настроить авторизацию по открытому ключу, запускаем ssh-keygen -t dsa, генерируем ключ и копируем публичную часть ключа (id_dsa.pub) на сервер в файлик $HOME/.ssh/authorized_keys и, вуаля, вы можете заходить по ssh без пароля.
Удобство сомнительное, если разобраться аспект безопасности уходит на второй план перед удобством, но в целях самоудовлетворения проканает.
В принципе, обо всём этом можно почитать в man, но мало-ли, вам захочется поискать нужную инфу в Яндексе. Словом, данная запись будет к вашим услугам, как только поисковики её проиндексируют 😉