Login &引用;ssh example.com“;挂起,但是;ssh example.com bash-i“;不

Login &引用;ssh example.com“;挂起,但是;ssh example.com bash-i“;不,login,ssh,netcat,Login,Ssh,Netcat,每天我都会遇到一个非常奇怪的现象 从我的大学互联网连接,sshing到我的机器(“ssh example.com”)的工作没有任何问题 从我的家庭adsl“ssh example.com”中,我的控制台被以下消息卡住: debug1: Server accepts key: pkalg ssh-rsa blen 533 debug1: Enabling compression at level 6. debug1: Authentication succeeded (publickey). de

每天我都会遇到一个非常奇怪的现象

从我的大学互联网连接,sshing到我的机器(“ssh example.com”)的工作没有任何问题

从我的家庭adsl“ssh example.com”中,我的控制台被以下消息卡住:

debug1: Server accepts key: pkalg ssh-rsa blen 533
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
有时它可能会让我进去,但在大多数情况下不会。
有趣的是,如果我执行“ssh example.com bash-I”,我会立即登录。

这两种情况之间的区别在于,“bash-I”不会提供登录shell,而只是运行ssh。您可以使用“manbash”了解“登录shell”的详细信息,但主要是它运行/etc/profile和您的.bash\u配置文件。在这些文件中查找可能导致问题的任何内容。

可能服务器的PTY已用完。

我终于找到了问题的根源。它与SSH服务类型(ToS)TCP数据包有关

当您请求常规ssh终端时,ssh将TCP数据包服务类型(ToS)设置为“交互式”。我的路由器在我的住所阻止那些包类型

使用netcat,隧道传输的TCP数据包不会获得任何类型的服务指令。因此,如果您通过netcat隧道所有ssh通信量,则将TCP数据包的ToS重置为默认值

在.ssh/config中,必须设置:

Host *.example.com
    ProxyCommand nc %h %p

因此,每次尝试通过ssh连接到example.com时,都会调用netcat并通过隧道传输数据包。

我刚才遇到了同样的问题。请尝试使用其他ssh客户端登录以获取更多信息。虽然linux命令行客户端没有返回任何有用的消息,但Putty返回的消息是“服务器拒绝分配pty”。我用mkdir/dev/pts和mount-a修复了它。一开始我不太确定它是怎么搞砸的

顺便说一句,bash-l应该像一个登录shell,这样您就可以很容易地证明Peter Westlake的建议对您的情况是正确的还是不正确的。

截止到,您可以将其添加到您的ssh配置文件中(无论是~/.ssh/config还是/etc/ssh/ssh\u-config):

主人* IPQoS 0x00 这是一种更直接的解决问题的方法

Host * IPQoS 0x00