使用带有 Kerberos 的 OpenSSH
某些初始设置需要使用带有 Kerberos 的 OpenSSH。
以下步骤提供了关于为使用带有 Kerberos 的 OpenSSH 所需的初始设置的信息:
- 在您的 OpenSSH 客户机和服务器上,/etc/krb5.conf 文件必须存在。 该文件告诉 Kerberos 使用哪个 KDC、给每个凭单的生命期多长,等等。 以下是一个 krb5.conf 示例文件:
[libdefaults] ticket_lifetime = 600 default_realm = OPENSSH.AUSTIN.XYZ.COM default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc [realms] OPENSSH.AUSTIN.xyz.COM = { kdc = kerberos.austin.xyz.com:88 kdc = kerberos-1.austin.xyz.com:88 kdc = kerberos-2.austin.xyz.com:88 admin_server = kerberos.austin.xyz.com:749 default_domain = austin.xyz.com } [domain_realm] .austin.xyz.com = OPENSSH.AUSTIN.XYZ.COM kdc.austin.xyz.com = OPENSSH.AUSTIN.XYZ.COM - 同时,您必须把以下 Kerberos 服务添加到每个客户机的 /etc/services 文件中:
kerberos 88/udp kdc # Kerberos V5 KDC kerberos 88/tcp kdc # Kerberos V5 KDC kerberos-adm 749/tcp # Kerberos 5 admin/changepw kerberos-adm 749/udp # Kerberos 5 admin/changepw krb5_prop 754/tcp # Kerberos worker # propagation - 如果 KDC 使用 LDAP 作为注册表来存储用户信息,请阅读 LDAP 认证装入模块和 Kerberos 出版物。 另外,请确保执行了以下操作:
- KDC 正在运行 LDAP 客户机。 您可以用 secldapclntd 命令启动 LDAP 客户机守护程序。
- LDAP 服务器正在运行 slapd LDAP 服务器守护程序。
- 在 OpenSSH 服务器上,编辑 /etc/ssh/sshd_config 文件以包含以下行:
如果将 UseDNS 设置为 Yes,那么 ssh 服务器将进行逆向主机查询以查找连接的客户机的名称。 当使用基于主机的认证或当您希望最新登录信息显示主机名而非 IP 地址时,这是必需的。KerberosAuthentication yes KerberosTicketCleanup yes GSSAPIAuthentication yes GSSAPICleanupCredentials yes UseDNS yes注: 某些 ssh 会话在执行逆向名称查找时停止,因为无法访问 DNS 服务器。 如果发生这种情况,您可以通过将 UseDNS 设置为no来跳过 DNS 查找。 如果未在 /etc/ssh/sshd_config 文件中显式设置 UseDNS ,那么缺省值为UseDNS yes。 - 在 SSH 服务器上,运行 startsrc -g ssh 命令以启动 ssh 服务器守护程序。
- 在 SSH 客户机上,运行 kinit 命令以获得初始凭证 (TGT)。 可以通过运行 klist 命令来验证是否接收到了 TGT。 这将显示属于您的所有凭证。
- 通过运行 ssh username@servername 命令来连接到服务器。
- 如果正确配置了 Kerberos 以认证用户,那么将不会显示要求密码的提示,且用户将自动登录到 SSH 服务器。