linux - 在服务器上设置 SSH 身份验证时需要 Kerberos keytab 文件的原因是什么?

标签 linux ssh kerberos pam sssd

我对 Kerberos 没有太多经验,但我正在尝试使用 sssd 在我的一台服务器上通过 AD 设置 SSH 身份验证。我已按照 sssd 文档 here 上的说明进行操作并让它工作,但我很难理解为什么我需要一个 keytab 文件来设置它?

我最近阅读了一些有关 Kerberos 的内容,当服务器需要在没有用户交互的情况下向 AD 进行身份验证时,或者当您需要实现 SSO(当用户请求该服务的票证)。

我只是希望我的用户在通过 SSH 登录时输入他们的用户名/密码,并让 sssd 根据 AD 验证该用户并为他们创建 TGT 票证。有趣的是 - 即使我没有设置 sssd 而只设置 kerberos 端,我也可以运行 kinit 并且得到一张票!

所以我的问题是:我可以使用 sssd 设置 SSH 身份验证而不在服务器上生成 keytab 文件吗?如果不是那么为什么不呢?

最佳答案

主题行中的问题“在服务器上设置 SSH 身份验证时使用 Kerberos keytab 文件的原因是什么?”可归结为一行答案:它允许 Kerberos 单通过解密入站 Kerberos 服务票证来“告知”用户是谁,从而对目录服务器进行登录身份验证。至于您的另一个问题“我可以使用 sssd 设置 SSH 身份验证而不在服务器上生成 keytab 文件吗?”,答案是肯定的,可以。但是,每当您连接到 SSH 服务时,系统都会提示您输入用户名或密码,除非您选择在可能用于连接的任何 SSH 实用程序中缓存密码。不过,在这种方法中缓存密码不被视为“单点登录”。

如需更多引用,您可以阅读我在 Microsoft Technet 上关于 Kerberos keytabs 的文章的更多信息:Kerberos Keytabs – Explained 。我经常根据我在这个论坛中看到的问题返回并编辑它。

关于linux - 在服务器上设置 SSH 身份验证时需要 Kerberos keytab 文件的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43111105/

相关文章:

linux - 未知原因读取串行端口 block

mysql - VPS (ubuntu) : MySQL process dies 的内存使用问题

java - 连接到Cloudera Impala环境时出现Kerberos错误

sql-server - SSPI 提供程序 : Server not found in Kerberos database

c - 子进程的内存使用情况?

linux - ldapmodify - 无法将成员添加到 AD 组

python - Paramiko:将 host_key 永久添加到 known_hosts

Java/或 Android IP 隧道

emacs - 尝试通过Cygwin上的SSH连接时,Emacs挂起

java - 使用jsp在tomcat中开发kerberos