Как известно в ОС Windows никогда не было штатного SSH-сервера и очень зря, т.к. это очень полезная и интересная штучка.
Secure SHell — сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Сходен по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования.
Как раз на днях назрела проблема с удаленным доступом к внутренним серверам корпоративной сети и я решился убить время на установку SSH-сервера. Я перепробовал несколько вариантов бесплатных серверов (CopSSH, OpenSSH fo Windows, SSHD из Cygwin, KpyM SSH-Server, FreeSSHd). В силу подбора продукта под Windows, я искал простой в установке и функциональный сервер. По ряду причин таким оказался FreeSSHd.
В установке этого продукта нет ничего сложного, скачиваем дистрибутив с официального сайта и запускаем инсталляцию.
На запрос "Private keys should be created. Should I do it now?" (запрос на создание серверных RSA/DSA ключей) отвечаем да.
На запрос "Do you want run FreeSSHd as a system service?" (запрос на регистрацию FreeSSHd как системной службы) отвечаем по желанию. Если вам надо чтобы сервер запускался при старте компьютера без необходимости локального входа, то ставим да.
Далее идем Пуск->Программы->FreeSSHd->FreeSSHd либо вызываем его из системного трея. Появиться окно конфигурации, где мы перейдем на закладку SSH.
Здесь мы можем выбрать (описаны последовательно):
- на каком интерфейсе будет "висеть" сервер
- какой порт он будет "слушать"
- максимальное число подключений
- таймаут простоя сессии
- путь к файлу сообщения при логине пользователя в систему
- путь до шелла пользователей (программа запускаемая при логине пользователя и обрабатывающая его команды)
- Флаг запуска SSH сервера при запуске службы freeSSHd
- Флаг "использование новой консоли", должен быть включен. Т.к. есть сообщения о подвисании сессии с опущенным флагом.
- Путь к RSA-ключу сервера
- Путь к DSA-ключу сервера.
Рекомендуется на данной вкладке настроить нестандартный порт, дабы отсечь часть скриптов "little-хакеров".
Далее переходим на закладку Authentication:
Здесь мы можем изменить расположение папки публичных ключей (Public key folder), по умолчанию она указывает на папку программы, что мне не понравилось и я сменил его на подпапку с именем pub-keys.
Ну а самое главное тут можно глобально настроить методы аутентификации. Их два: парольная и публичным ключом. Каждый метод может находиться в состоянии: отключен (Disabled), разрешен (Allowed), запрашивается/обязательный (Required). На скриншоте выше показана конфигурация для аутентификации по ключу.
Далее перейдем на закладку Tunneling и разрешим использование туннелей (т.е. так называемый "проброс" портов одной машины на порты другой):
Ну и наконец нам осталось завести пользователя на сервере. Делается это на закладке Users:
Нажав на этой вкладке кнопку Add мы добавим пользователя. В появившемся окне пропишем логин, правила аутентификации, и права.
Тип аутентификации может быть:
- NT, применяем в случае использования Windows-пользователя.
- парольная на хеше SHA-1, может быть использована в случае не желания использовать Windows-пользователей для входа.
- на публичных ключах, аналогична предыдущей. Только для входа используем ключ.
Права пользователя определяют флаги "User can use", это:
- использование шелла
- использование безопасного FTP
- использование туннелей
Ставим нужное (а для удаленного рабочего стола нам нужны права на туннели и возможно шелл, аутентификацию вберем по ключам) и нажимаем ОK->Применить->OK. После чего надо перезагрузить компьютер иначе аутентификация по ключам не будет работать (а будет выпадать ошибка "No supported authentication methods available").
Запускаем PuTTYgen:
В Parameters выставляем SSH-2 RSA и длину в 1024 бита, нажимаем Generate.
Далее активно водим мышкой по разным областям окна, т.к. на основе координат мыши генерируются случайные числа. По окончании генерации получим окно:
В этом окне в поле "Key comment" вводим имя пользователя, для которого создавали ключ (то имя которое регистрировали в FreeSSHd), это надо чтобы потом мучительно не вспоминать чей это ключ.
Далее выделаем весь текст в поле "Public key for pasting into OpenSSH..." и вставляем его в обычный текстовый файл одной строкой. Имя файла задаем обязательно совпадающее с именем пользователя FreeSSHd, а расширение (в данном случае TXT) убираем совсем. Все публичный ключ готов, но окно PuTTYgen рано закрывать.
Мы еще должны сохранить частный/приватный ключ. Для этого сначала введем кодовую фразу (любую, лишь бы запомнить) в поле "Key passphrase" и повторим ее в поле "Confirm passphrase"(это надо чтобы защитить ваш ключ, если он будет украден, то без этой фразы его применить будет нельзя). И нажмем "Save private key" сохранив под именем пользователя с расширением ppk.
Далее необходимо закачать публичный ключ на SSH-сервер, как мы помним что настраивали его на подпапку pub-key в папке с программой.
Все готово для коннекта. Подробности о коннекте и туннелировании RDP во второй части.
Комментариев нет:
Отправить комментарий