Назад | Перейти на главную страницу

Почему может случиться так, что служба FreeSSHd работает на Windows Server, но я не могу подключиться с клиентского компьютера?

FreeSSHd устанавливается на Windows Server 2003, но не на диск C :, а на другой диск, D :. Когда я открываю командную строку для диска D: и набираю ssh, он сообщает мне, что ssh не распознается.

Я добавил себя в качестве пользователя FreeSSHd с хешированным паролем и включил SSH.

Служба брандмауэра Windows не запущена.

Я могу подключиться к серверу с помощью подключения к удаленному рабочему столу. Я хочу использовать ssh с системой управления исходным кодом Mercurial.

Пока я вошел на сервер через подключение к удаленному рабочему столу, я также могу подключиться к серверу через ssh и putty на клиентской машине.

Как только я выхожу с сервера через подключение к удаленному рабочему столу и набираю на клиенте:

ssh <username>@<server>

Я получил:

ssh: Connect to host <server> port 22: Connection refused

Я знаю, что восстанавливаю старую ветку, но у меня есть новая информация. На самом деле ответ заключается в том, что служба и интерфейс работают независимо, со своим собственным ini-файлом. По умолчанию служба работает как LocalSystem, но когда вы запускаете внешний интерфейс (по крайней мере, в Windows 7), он сохраняет настройки в дереве каталогов вашего профиля, поэтому служба никогда не читает их.

Решением для меня было скопировать файл FreeSSHDService.ini из следующего места поверх того, что находится в папке Program Files:

C:\users\<my username>\AppData\Local\VirtualStore\Program Files (x86)\freeSSHd\

Перезапустите службу, а затем вы сможете выйти. Но, как указал Маттиджс, иногда кажется, что он все еще падает, а другой недостаток заключается в том, что каждый раз, когда вам нужно внести изменение в конфигурацию, вам нужно либо вручную отредактировать файл ini, либо повторно скопировать его после редактирования через пользовательский интерфейс. Жаль, что он больше не поддерживается, но все еще очень полезный инструмент.

извините, но это смешно, когда нужно держать сеанс открытым, чтобы служба не закрывалась .... У меня была такая же проблема, и я был вынужден позволить службе работать, запустив ее как администратор из команды.

Сделайте следующее: Перейдите в консоль служб в администраторе и остановите текущую службу freessshd. Затем откройте CMD и запустите:

runas /user:<localmachinename>\administrator cmd

где \ administrator может быть заменен вашим пользователем с правами администратора. Мне не нужно было имя локальной машины.

Он попросит вас ввести пароль, а затем откроет новый CMD. В этой команде вы запустите freesshdservice с

net start <service name>

Закройте все экраны и выйдите из системы. Test is freesshd все еще работает.

Незначительным улучшением будет добавление автозапуска в код командной строки, чтобы он перезапускался после перезагрузки сервера. Думаю, с текущим решением этого не произойдет.

Ответ - не выходить из системы. Таким образом, ssh-сервер продолжит работу. Просто закройте программу подключения к удаленному рабочему столу на клиентском компьютере.

Для службы FreeSSHD необходимо включить параметр «Разрешить службе взаимодействовать с рабочим столом».

Щелкните правой кнопкой мыши инструмент настройки freesshd и выберите «Запуск от имени администратора», а также установите флажок «Разрешить службе взаимодействовать с рабочим столом» в службах.