ngrok 上的 PuTTY 命令行无法进行身份验证

Authentication is not working from PuTTY command line on ngrok

我在家里设置了一个 Raspberry Pi 作为下载服务器。要从任何 Windows PC 访问它,我下载 Putty 并将其父文件夹添加到 Path 环境变量。 当从我家庭网络上的任何 PC 使用 Putty GUI 或 CLI 通过 SSH 访问它时,它会尝试使用 SSH 密钥登录,如果失败,它会提示我输入密码,然后我可以登录。

我设置了一个 ngrok 帐户,以便能够在工作时访问服务器(ngrok 对所有用户使用相同的地址,但每个免费用户都有一个特定的端口,在服务器重新启动时随机分配)。 如果我打开 Putty 的 GUI 并添加地址 (0.tcp.ngrok.io) 和我的端口 (13495) 然后单击打开,我正常登录,首先是 SSH 密钥,如果失败,密码提示,我可以登录;如下图所示:Putty GUI Login

但是,如果我从命令行使用 "putty root@0.tcp.ngrok.io:13495" 通过命令登录或使用该命令作为目标创建 Windows 快捷方式,它的反应就好像密码验证被禁用并且唯一的验证方法是通过 SSH 密钥,事实并非如此。 (Failed Putty Logins)

我终于尝试将工作桌面的 SSH 密钥添加到 authorized_keys 文件中,但没有任何改变。我可以使用密钥通过GUI登录,但CLI登录仍然失败。

我已经尝试重置 Putty 的所有设置,重新下载,使用 Pageant 而不是 Putty 设置 SSH>Auth,没有任何效果。

我进行了广泛的搜索,深入研究了 Internet 令人毛骨悚然的深处,但找不到遇到同样问题的任何人。如果有人确实找到了同样问题的 post,那么那个 post 一定离我很远 运行。 请帮帮我。 这开始变得很烦人。

提前致谢。

这是因为 PuTTY 实际上会忽略冒号后的所有内容(为了与 PuTTY psftp 和 pscp 工具保持一致,您在冒号后指定路径)。

所以 putty root@0.tcp.ngrok.io:13495 的工作方式与 putty root@0.tcp.ngrok.io 相同。这意味着您实际连接到默认的 SSH 22 端口,而不是 13495。

您必须使用 -P 开关来指定非默认端口:

putty root@0.tcp.ngrok.io -P 13495