配置 SSH 进行 Kerberos 身份验证

OpenSSH 在协议版本 1 和 2 中均支持 Kerberos 身份验证。在版本 1 中,存在特定的协议消息来传送 Kerberos 票据。版本 2 不再直接使用 Kerberos,而是依赖于 GSSAPI,即通用安全服务 API. 这是一种不特定于 Kerberos 的编程接口 - 旨在隐藏底层身份验证系统的属性,无论它是 Kerberos、公共密钥身份验证系统(如 SPKM)还是其他系统。但是,GSSAPI 库中仅包含 Kerberos 支持。

要将 sshd 与 Kerberos 认证一起使用,请编辑 /etc/ssh/sshd_config 并设置如下选项:

# These are for protocol version 1 
#
# KerberosAuthentication yes
# KerberosTicketCleanup yes

# These are for version 2 - better to use this
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

然后使用 rcsshd restart 重启动您的 SSH 守护程序。

要将 Kerberos 身份验证与协议版本 2 一起使用,需要在客户端也启用它。此操作可在整个系统范围的配置文件 /etc/ssh/ssh_config 中执行,也可通过编辑 ~/.ssh/config 在每个用户级别上执行。在这两种情况下,均应添加选项 GSSAPIAuthentication yes

您现在应该能够使用 Kerberos 身份验证进行连接。使用 klist 来验证您是否具有有效票证,然后连接到 SSH 服务器。要强制使用 SSH 协议版本 1,请在命令行上指定选项 -1

[Tip]其他信息

文件 /usr/share/doc/packages/openssh/README.kerberos 中详细讨论了 OpenSSH 和 Kerberos 的交互。