问题
在本地计算机上使用命令提示符或 WSL2 成功登录后,SSH 连接挂起。但是,使用 PuTTY 时,相同的 SSH 连接没有任何问题。我能够看到介绍信息登录后但不是 shell 提示符。这只发生在特定服务器上。令人惊讶的是,它在其他客户端机器上也能成功。
当前环境
- Windows 10 v10.0.19045.2965
- Windows SSH 版本:
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
- WSL2 SSH 版本:
OpenSSH_8.2p1 Ubuntu-4ubuntu0.7, OpenSSL 1.1.1f
我迄今为止尝试过
- 禁用 GSSAPIAuthentication:
ssh -T -o GSSAPIAuthentication=no user@host
曾经成功过,但其他尝试都失败了。 - 更改远程服务器的 SSH 端口
UseDNS no
通过在 SSH 服务器配置文件(位于 /etc/ssh/sshd_config)中设置来禁用 SSH 服务器上的 DNS 反向查找。
令人费解的是,PuTTY 运行正常,但我本地机器上的本机 SSH 客户端却一直遇到这个问题。
答案1
ssh
用于连接的命令是ssh -T user@host
。
该-T
标志的解释如下男人为:
禁用伪tty分配
这基本上意味着你遇到的确切问题,它应该被使用(更多内容请见此处)当您特别不想要交互式 shell(您可以在其中手动输入命令)时。
在您的情况下,这可能只是不需要的(从某些东西中复制并粘贴...),删除它将使ssh
交互式 shell 的工作按预期进行。只需使用:
ssh user@host