День: 04.03.2004

Apache 2.0.48

Обновил на сервере версию Апача на более продвинутую — 2.0.48. Всвязи с чем на протяжении последних двух часов вылавливал многочисленные глюки. Ещё, кстати, не все поборол. Например, так до сих пор и не удалось заставить Апач возвращать вот эту страницу в правильной кодировке. Я подозреваю, что это баг, но обойти его у меня пока не получается..

Также долгое время отказывался работать Регистр, пока не указал register_globals on в server-wide настройках.

Остальные баги поборол более-менее успешно. Осталась сущая мелочь.

Cygwin sshd — авторизация по открытому ключу

Сбылась мечта идиота — таки я настроил сабж у себя на серваке. Теперь можно заходить по 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. Если при запуске служба ругается на что-то вроде «Can’t 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, но мало-ли, вам захочется поискать нужную инфу в Яндексе. Словом, данная запись будет к вашим услугам, как только поисковики её проиндексируют 😉