SSH可在腻子中使用,但不能在终端上使用


24

当我尝试在终端中使用ssh时:ssh username@sub.domain.com我收到以下错误:
Connection closed by 69.163.227.82

使用腻子时,我可以连接到服务器。为什么会发生这种情况,如何在终端中使用它呢?

ssh -v username@sub.domain.com

OpenSSH_6.0p1 (CentrifyDC build 5.1.0-472) (CentrifyDC build 5.1.0-472), OpenSSL 0.9.8w 23 Apr 2012
debug1: Reading configuration data /etc/centrifydc/ssh/ssh_config
debug1: /etc/centrifydc/ssh/ssh_config line 52: Applying options for *
debug1: Connecting to sub.domain.com [69.163.227.82] port 22.
debug1: Connection established.
debug1: identity file /home/ryannaddy/.ssh/id_rsa type -1
debug1: identity file /home/ryannaddy/.ssh/id_rsa-cert type -1
debug1: identity file /home/ryannaddy/.ssh/id_dsa type -1
debug1: identity file /home/ryannaddy/.ssh/id_dsa-cert type -1
debug1: identity file /home/ryannaddy/.ssh/id_ecdsa type -1
debug1: identity file /home/ryannaddy/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5
debug1: match: OpenSSH_5.1p1 Debian-5 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: Miscellaneous failure
Cannot resolve network address for KDC in requested realm

debug1: Miscellaneous failure
Cannot resolve network address for KDC in requested realm

debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
Connection closed by 69.163.227.82

是什么ssh -v username@sub.domain.com节目?
James Sneeringer 2013年

我更新了主要问题。服务器也应该要求输入密码,登录时不需要ssh密钥。
下车,我草坪2013年

您是否更改了PuTTY中的默认设置?
克鲁格2013年

另外,您尝试过user@domain.com吗?省略sub
克鲁格2013年

1
您正在使用Centrify的OpenSSH构建,这意味着您的系统是AD集成的。Active Directory使用Kerberos,而OpenSSH则抱怨找不到Kerberos KDC,因此无法使用。你/etc/krb5.conf长什么样
James Sneeringer 2013年

Answers:


23

通过以下URL为我找到了解决方案:http : //www.held.org.il/blog/2011/05/the-myterious-case-of-broken-ssh-client-connection-reset-by-peer/

它甚至可以很好地解释正在发生的事情。

最终,我在/ etc / ssh / ssh_config中添加了以下内容:

Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
HostKeyAlgorithms ssh-rsa,ssh-dss
MACs hmac-md5,hmac-sha1,hmac-ripemd160

无论是Ciphers还是HostKeyAlgorithms都不能单独工作,可以肯定的是MAC将我放在首位才能使它正常工作,但是我不确定,要花很多时间才能解决这个问题。我希望这至少可以帮助其他人。


编辑:这(有时)解决了问题,但可能不是您想要的方式。 --jcwenger

这些设置似乎(作为副作用)改变了ssh客户端发出数据包的方式,并恰巧导致其发出较小的数据包。这不能解决问题。有时,这样做只是为了避免触发真正的问题(与愚蠢的防火墙规则实现交互的MTU碎片)。

正确的解决方案是设置一个端到端工作的MTU。

无需手动设置MTU一个较小的数字,以确保没有出现碎片是没有任何清洁剂(我们作为用户不应该手动采取措施引起我们的网络团队计数器问题)...但它至少不直接处理以一种可靠且可证明的方式证明实际原因,而不是以某种方式搞乱SSH的密码设置,这种副作用是,当星星对齐时,碰巧会导致它不会产生大数据包。

此外,SSH并不是唯一产生大数据包的东西。设置MTU也可以防止其他协议发生同样的事情。


5
谢谢,就我而言,仅最后一行MACs hmac-md5,hmac-sha1,hmac-ripemd160就够了
Tombart 2013年

我在github上遇到问题-git pull / git push-什么也没发生。尝试ssh -T -v git@github.com并得到相同的错误。用这个来解决。谢谢!
杰森

我遇到了类似的问题,并尝试了此解决方案。副作用是,与已知主机的任何连接都将指责主机密钥更改。
lfagundes

所有这些补丁都在治疗症状,而不是原因。减小密码大小有可能防止MTU碎片...这是真正的问题,由下面的@jagguli提出。
jcwenger 2015年

在“ / etc / ssh / ssh_config”中添加“ HostKeyAlgorithms ssh-rsa,ssh-dss”行可以解决我无法通过SSH进入Zyxel调制解调器的问题。上面的tetbox中的所有其他行在我的机器上已经存在。多谢小费!
杰夫·赖特


6

这样就解决了MTU问题,而无需硬编码一些值,它将针对ssh和由此影响的任何其他协议进行修复。以root用户身份运行以下命令:

echo 2 > /proc/sys/net/ipv4/tcp_mtu_probing

您可以在此处此处阅读有关该问题和解决方案的更多信息。


说明:“事实证明,内核/ proc文件系统通过更改'file'/ proc / sys / net / ipv4 / tcp_mtu_probing中的值,提供了一种启用和禁用TCP MTU探测的简便方法。值为0 =禁用; 1 =当检测到黑洞路由器时启用; 2 =始终启用。”
Jorj

1

经过一番寻找,在这里发现了以下建议:

尝试确保/ etc / ssh / ssh_config中的以下行(不sshd_config)未被注释掉:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

您也可以尝试将该文件还原为默认文件,然后重试,即卸载并重新安装openssh-clientIIRC程序包的名称。


那没有解决它:(
我的草坪上下车


1

我能够通过强制将IPv4与

ssh -4 username@host.xyz

由于我使用的是Mac,因此我不知道此处的MTU设置或更改方法如何,但我认为其他人可能会从中受益。


该选项强制ssh仅使用IP4。我也使用Mac,但无法解决我的问题。
Jorj

0

我今天在Windows(随Git分发的ssh)和Ubuntu上开始遇到此问题。

它似乎是OpenSSH上的错误,而LauchPad上存在问题。

它在Windows上对我有效,它强制使用3des-cbc密码和Ubuntu上的密钥。


0

这里有点坏处,但是我在Linux的OpenSSH_7.8p1上遇到过。在最近发布的OpenSSH版本中,DSCP标记的引入似乎在VMware NAT中有所突破(在以下链接中提到桥接网络很好)。

您可以通过在/ etc / ssh / ssh_config中添加/设置以下内容来解决此问题:

IPQoS lowdelay throughput

其他因素可能是PuTTY(或其他不同的SSH客户端)可能不会在同一主机上遇到此问题,并且到目前为止,您的MTU都已签出。即:

ping -M do -s 1472 your-ssh-server

这些帖子特别有用,使我到达了需要去的地方:

https://groups.google.com/forum/#!topic/opensshunixdev/5FK67SCpPg8 https://groups.google.com/forum/#!topic/opensshunixdev/uNd48nGOe7A


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.