MobaSSH 服务器用于与 Windows PC 进行 SSH 连接

MobaSSH 服务器用于与 Windows PC 进行 SSH 连接

背景:

我需要一个新的备份解决方案。不幸的是,我的大多数个人电脑都运行 Windows,即没有原生的 rsync 支持,但有一堆替代工具,这些工具要么被货币化,要么工作得不够好(因此,我恳请大家不要使用诸如“尝试 rsync for windows alternative XY”之类的“解决方案”,除非你真的确信该工具完全免费并且具有完整的 rsync 功能)。因此,我想运行一个 ssh 服务器,以便在 MobaXterm(适用于 Windows 的类似 cygwin 的 Unix 环境)之外使用 rsync。有一个工具似乎可以很好地完成这项工作:MobaSSH(https://mobassh.mobatek.net/

问题:

在试用了 Windows 中自带的 OpenSSH 客户端和服务器后,我意识到 ssh/scp 可以完美地与此解决方案配合使用,但 rsync 暂时不受支持,而且似乎不会很快推出。因此,我使用 MobaSSH 作为 ssh 服务器。在一台我没有试用 Windows OpenSSH 服务器的机器上,MobaSSH 可以正常工作,例如,我可以这样连接:

ssh localhost

然而,在我需要的机器上,这是不可能的,即 Windows 用户帐户的 USER 和 PASSWORD 组合无法被识别,我得到了一个

Permission denied.

在上述命令之后。(Windows 机器上只有一个用户,这与尝试

ssh USER@localhost

直接地。)

到目前为止,我尝试卸载 Windows OpenSSH 服务器应用程序并重新安装 MobaSSH。

我确信 USER 和 PASSWORD 是登录 Windows 的唯一密码。

由于它在另一台机器上运行没有问题,我怀疑在设置 OpenSSH 服务器后有一些注册表项或任何东西出了问题,而简单的卸载无法发现。有谁知道哪里出了问题和/或知道在哪里可以找到问题吗?

谢谢!

答案1

好的,我发现了几个问题,最终使这个工作得以完成:

1) Windows 建议 USER 和 HOSTNAMES 不区分大小写,即它偶尔会错误地打印,例如,当使用 ssh localhost 时,没有指定用户。这当然是不正确的,即,通过始终手动指定 USER/HOSTNAMES 可以解决这个问题。

2) MobaSSH 具有相当不错的功能,但仅限于付费版本。免费版本不允许更改任何默认设置。默认设置之一是禁用密码登录,即必须设置 rsa 密钥对。传统上,这需要先通过密码登录,但如果可以完全访问 Windows 计算机,显然可以解决这个问题。因此,这里的解决方法是首先设置无密码登录(将密钥复制到 /USR/.ssh/authorized_keys 中)。

不幸的是,这也意味着我不能推荐任何人使用 MobaSSH。

3) Windows 防火墙阻止了端口 22。据我所知,这个想法是设置特定程序使用(某些)端口的权限。安装 MobaSSH 时似乎设置正确,但是,尽管防火墙设置中存在传入规则并且在我看来是正确的,但端口仍然被阻止。我设法做到的唯一修复(尽管禁用了防火墙)是添加端口 22 的例外,独立于程序。

我不知道这是否是故意的,或者 MobaSSH 的例外设置不正确(尽管在我看来似乎是正确的)。

总而言之,以上几点解决了帖子中提到的问题,但可能不是一个完美的解决方案。

相关内容