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

为什么 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

答案1

我知道这是在重提旧话题,但我有一些新信息。答案实际上是服务和前端似乎独立运行,有自己的 ini 文件。默认情况下,服务以 LocalSystem 身份运行,但当您运行前端时(至少在 Windows 7 上),它会将设置保存在您的配置文件目录树中,因此服务永远不会读取它。

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

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

重新启动服务,然后您就可以注销。但正如 Mattijs 指出的那样,它似乎仍然偶尔会失败,另一个缺点是每次您需要进行配置更改时,您要么必须手动编辑 ini 文件,要么在通过 UI 编辑后重新复制它。可惜它不再受支持,但它仍然是一个非常有用的工具。

答案2

抱歉,但这太荒谬了,必须保持会话打开才能不关闭服务....我遇到了同样的问题,我可以通过从命令中以管理员身份启动它来让服务运行。

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

runas /user:<localmachinename>\administrator cmd

其中 \administrator 可以由您的管理员用户替换。我不需要本地计算机名称。

它会要求你输入密码,然后打开一个新的 CMD。在此命令中,你将使用以下命令启动 freesshd 服务

net start <service name>

关闭所有屏幕并注销。测试 freesshd 是否仍在运行。

一个小的改进是将自动启动添加到命令行代码中,这样它将在服务器重启后重新启动。我猜,使用当前解决方案不会重新启动。

答案3

右键单击 freesshd 配置工具,选择“以管理员身份运行”,并在服务中选中“允许服务与桌面交互”

答案4

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

相关内容