为什么FreeSSHd服务在Windows Server上运行,但是我无法从客户机连接?

FreeSSHd安装在Windows Server 2003上,不在C:驱动器上,而在另一个驱动器D:上。 当我命令提示符到D:驱动器并键入在ssh中,它告诉我ssh不被识别。

我将自己添加为FreeSSHd的用户,使用散列密码并启用了SSH。

Windows防火墙服务未运行。

我可以使用远程桌面连接连接到服务器。 我想用Mercurial的源代码pipe理系统使用ssh。

当我通过远程桌面连接login到服务器时,我也可以通过客户机上的ssh和putty连接到服务器。

只要我通过远程桌面连接从服务器注销,并且在客户端上input:

ssh <username>@<server> 

我得到:

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

我知道,复活旧的线程,但我有一些新的信息。 答案其实就是服务和前端似乎独立运行,并拥有自己的ini文件。 该服务在默认情况下以LocalSystem身份运行,但是当您运行前端(至less在Windows 7上)时,会将设置保存在configuration文件目录树中,以便服务不会读取它。

对我来说,解决scheme是将FreeSSHDService.ini文件从以下位置复制到Program Files文件夹中的顶部:

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

重新启动服务,然后您可以注销。 但是正如Mattijs所指出的那样,它偶尔也会倒下,另一个缺点是每次你需要更改configuration时,你必须手动编辑ini文件,或者在通过UI编辑后重新编辑。 太糟糕了,它不再支持,它仍然是一个非常有用的工具。

答案是不从服务器注销。 这样,ssh服务器将继续运行。 只需closures客户机上的远程桌面连接程序即可。

对不起,但这是荒谬的,必须保持会议开放,没有服务closures….我有同样的问题,我是ablw让服务运行启动它作为pipe理员从命令。

执行以下操作:转到pipe理员的服务控制台并停止当前的freessshd服务。 然后打开CMD并运行:

 runas /user:<localmachinename>\administrator cmd 

其中\pipe理员可以由您的pipe理员用户replace。 我不需要本地机器的名字。

它会询问你的密码,然后它会打开一个新的CMD。 在这个命令中,你将启动freesshdservice

 net start <service name> 

closures所有屏幕并注销。 testing是freesshd仍在运行。

稍加改进就是在命令行代码中添加自动启动,以便在服务器重新启动后重新启动。 目前的解决scheme,它不会,我猜。

FreeSSHD服务需要启用“允许服务与桌面交互”设置。