我希望在 ssh 时获取 Kerberos 5 票证,以获得全自动登录解决方案。
通常,您首先使用 kinit,然后使用 ssh:
> kinit user@DOMAIN
user@DOMAIN's Password: (enter password)
> ssh user@host
(successful login)
我想简单地运行 ssh user@host 并自动检查 Kerberos 票证。如果没有,我希望它获取票证然后登录。
> kdestroy
> ssh user@host
user@DOMAIN's Password: (enter password)
(successful login)
(log off of host)
> klist
(show ticket info)
我希望根据每个主机进行此项配置,因为并非我登录的每个主机都支持 Kerberos。
答案1
我假设您使用的是 OpenSSH,在这种情况下它就无法正常工作。此外,获取 TGT 被视为主要身份验证程序的工作,客户端只需参与使用 TGT 为客户端获取服务票证,因此如果项目确实添加了该功能,它会看起来很奇怪,并且可能会导致人们已经非常困惑的主题不断混淆。
也就是说,您实际上可以编写一个围绕 ssh 和 klist/kinit 的脚本,然后直接使用它或将“ssh”别名用于您的脚本。一旦您执行了您编写的脚本,您就可以根据您想要的任何标准进行操作。
答案2
如果您在 PAM 链中使用(在正常密码之前),这实际上是有可能的pam-krb5
。这将自动根据 kerberos 检查您的用户名和密码并尝试获取票证。
ssh
如果您正确配置了 PAM(即条目在common-auth
和中) ,这也适用于。因此,如果存在具有该用户名的主体,common-session
则任何支持 Kerberos 登录的主机也将授予票证。ssh
ssh
答案3
这是我目前正在尝试的小包装脚本:
/bin/bash #!/bin/bash # 如果没有,则获取 kerberos TGT # 在使用 SSH 之前,已经有一个。 清单 如果 [ $? -eq 1 ] 然后 echo "获取 kerberos 票证" 基尼特 菲 /usr/bin/ssh $@