Que*_*ger 4 kerberos sssd freeipa
我按照标准文档分别在主机“SRV”和“CLT”上安装了 FreeIPA 服务器和客户端。然后我使用 Web UI 向 FreeIPA 添加了一个用户“X”。现在,当我尝试通过 SSH 作为 X 到 CLT 时,出现'Permission denied, please try again.'错误。我在客户端检查了“/var/log/messages”,看到了这个 - '[sssd[krb5_child[3277]]]: Decrypt integrity check failed'。
我多次重置密码,但这并没有解决问题。然后我遇到了这些——
听起来像从 SRV 和 CLT 中删除“/etc/krb5.keytab”文件,然后重新创建它们将解决问题。
您使用的是哪种 SSH 身份验证方法?您是输入密码还是尝试使用基于 Kerberos 票证的身份验证(gssapi-with-mic 或 gssapi-keyex)?
“解密完整性检查失败”消息可能来自两个来源。如果你给它错误的密码(你的密码与 KDC 中你的主体的密钥不匹配),你会得到它。如果您的密码正确,但服务器上的密钥表已过时,您也会得到它;票证和密码验证都会发生这种情况(因为使用密码,服务器在执行 kinit 后为其自己的主机主体获取票证,以验证 KDC)。
听起来像从 SRV 和 CLT 中删除“/etc/krb5.keytab”文件,然后重新创建它们将解决问题。
客户端上的密钥表无关紧要;这不是这个场景的一部分。这里可能的问题是服务器上的密钥表与 KDC(Kerberos 身份验证服务器,或“密钥分发中心”,它是 FreeIPA 的一部分)不同步。使用 Kerberos,系统中的所有身份(或“主体”)都具有与 KDC 共享的密钥。用户的密钥是从他的密码中生成的。sshd 等软件服务的密钥是随机生成的,并存储在名为 keytab(用于“密钥表”)的文件中,以便服务可以访问它们。这听起来像是 SSH 主体的密钥已在 KDC 中更改,但密钥表尚未更新以匹配。您的主体名称的格式为 user@REALM。SSH 服务的主体名称采用主机/主机名@REALM的形式。尝试:
$ ipa-getkeytab -s <FreeIPA server> -p host/<hostname>@REALM -k <keytab file>.
Run Code Online (Sandbox Code Playgroud)
... 将 SSH 服务主体的当前密钥提取到新的密钥表中。您可以使用klist -ek <keytab>来查看新旧密钥表的内容。如果您的密钥不匹配,它应该显示为具有不同密钥版本号(或“kvno”)的同一主体的密钥。您可能会看到类似以下内容:
# look at the system keytab
$ sudo klist -ek
KVNO Principal
---- --------------------------------------------------------------------------
1 host/foo.example.com@EXAMPLE.COM (AES-256 CTS mode with 96-bit SHA-1 HMAC)
# look at the new keytab
$ klist -ek <new keytab>
KVNO Principal
---- --------------------------------------------------------------------------
2 host/foo.example.com@EXAMPLE.COM (AES-256 CTS mode with 96-bit SHA-1 HMAC)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26796 次 |
| 最近记录: |