奇怪的SSH问题 – 单个主机不允许我通过名称login

任何人都可以解释这一点,因为我已经完成了从重新生成密钥到“离开”并重新join一个SSH主机的域(Centrify),我似乎无法通过单个客户端。 所有其他客户端都可以访问这个主机,除了一个。 奇怪的是,如果我使用IP地址,我可以从客户端SSH连接到主机:

$ ssh ddecker@host Connection closed by 10.0.0.250 $ ssh [email protected] Password: [ddecker@host ~]$ 

我唯一拥有的就是在主机上的/ var / log / messages里面,当我尝试使用主机名的时候,我得到以下结果:

 fatal: accept_ctx died [preauth] 

我已经尝试删除/etc/krb5.keytab,但是然后Centrify不启动; 所以我恢复了原状。 真的不知道为什么所有其他客户端可以通过名称进行连接,因为客户端只能通过IP进行连接。

更新#1:

这里是ssh -v ddecker@host的输出:

 debug1: Reading configuration data /etc/centrifydc/ssh/ssh_config debug1: /etc/centrifydc/ssh/ssh_config line 52: Applying options for * debug1: Connecting to host [10.0.0.250] port 22. debug1: Connection established. debug1: identity file /home/ddecker/.ssh/id_rsa type 1 debug1: identity file /home/ddecker/.ssh/id_rsa-cert type -1 debug1: identity file /home/ddecker/.ssh/id_dsa type -1 debug1: identity file /home/ddecker/.ssh/id_dsa-cert type -1 debug1: identity file /home/ddecker/.ssh/id_ecdsa type -1 debug1: identity file /home/ddecker/.ssh/id_ecdsa-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9 debug1: match: OpenSSH_5.9 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.9 debug1: Offering GSSAPI proposal: gss-gex-sha1-toWM5Slw5Ew8Mqkay+al2g==,gss-group1-sha1-toWM5Slw5Ew8Mqkay+al2g==,gss-group14-sha1-toWM5Slw5Ew8Mqkay+al2g==,gss-gex-sha1-A/vxljAEU54gt9a48EiANQ==,gss-group1-sha1-A/vxljAEU54gt9a48EiANQ==,gss-group14-sha1-A/vxljAEU54gt9a48EiANQ== 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: Doing group exchange debug1: Calling gss_init_sec_context debug1: Delegating credentials Connection closed by 10.0.0.250 

debuggingAD / Kerberos Centrify总是很烦人。

您可能要尝试在/usr/share/centrifydc/bin/addebug on启用服务器上的Centrifydebugging。 请注意,这可以创build非常大的日志文件,如果启用时间过长,可能会导致完整的卷。

检查SPN和KVNO的

从服务器上的本地密钥表中获取原则和KVNO列表。 这可能需要在Linux服务器(yum install krb5-workstation)上安装Kerberos客户机实用程序RPM软件包。

 klist -kte 

将其与您的AD所确定的Kerberos KVNO进行比较。 从另一个Centrify enebales Linux系统:(需要使用“kinit”启动活动的Kerberoslogin会话,如果你有一个有效的kerberos票证授予票证,检查klist ))最好从另一个主机做出他遇到的问题SSH使用主机主要。

 kvno host/hostname kvno host/hostname.domain.name 

如果上述两个命令返回不同的KVNO,然后根据相同的原则在klist中find,那么通常UNIX服务器上的本地密钥表文件需要重置。 当它与AD中的KDC不同步时,重置本地密钥表是从相关主机的命令行完成的,并且需要root权限。

 adkeytab -r -u <username> 

或使用本地计算机帐户凭据而不是上面的特权AD用户

 adkeytab -r -m 

症状表明,Kerberos是为一个客户打破。 如果你通过IP ssh,那么Kerberos通常不涉及。

一个客户端破解Kerberos的最常见原因是该客户端的时间不同步。 Kerberos要求所涉及的所有主机的系统时钟大致同步。

 /bin/date 

在客户端和服务器上应该在几秒钟内。

所以谢谢他们给了我一些build议。 然而,我最终发现了这个问题。 我写了一个简单的期望脚本,它基本上将我的SSH密钥复制到每个服务器上,并且通过简单的文件知道服务器是什么。

所以,我没有看到任何错误,但是对于这个主机,似乎我有一个与我的SSH密钥冲突的“known_hosts”条目,它基本上只会丢弃我的连接。 我删除了known_hosts文件(我真的必须删除known_hosts中的一个项目),然后重试我的连接 – 并被授予访问权限。

简单的修复,但错误没有帮助或指向我一个明显的修复。

谢谢!