Kerberos和ssh多重身份

时间:2016-05-14 03:55:12

标签: linux macos ssh kerberos configuration-files

也许这个问题的答案是,这是不可能的,但希望有人知道如何解决这个问题。在过去,在管理员在学校机器中配置Kerberos之前,我能够为多种目的创建ssh密钥。这样做的方法是通过我机器中的~/.ssh/config文件和服务器中的~/.ssh/authorized_keys。我的ssh配置文件的示例如下

Host sayHI
     IdentityFile path/to/sayHiPrivateKey
     HostName servername
     User myusername

Host sayHey
     IdentityFile path/to/sayHeyPrivateKey
     HostName servername
     User myusername

然后在authorized_keys文件中我会

command="echo hi" ssh-rsa sayHiPublicKeyLONGSTRING....
command="echo hey" ssh-rsa sayHeyPublicKeyLONGSTRING....
ssh-rsa otherkeysformypasswordlessentry

通过此设置,我可以执行类似

的操作
$ ssh sayHI
hi
$ ssh sayHey
hey

不幸的是,由于我们现在每天都在使用Kerberos进行身份验证,因此现在已经停止了。这意味着现在我做了什么

$ kinit username@SERVERNAME

我输入密码后,我可以按如下方式使用ssh:

$ ssh -K username@hostname

现在我可以访问了。如果我做

$ ssh sayHi

这不起作用,因为它要求我的密码。如果我做

$ ssh -K sayHi

这会让我登录,但它完全忽略了这个应该使用身份的事实,以便我可以运行命令echo hi。相反,它只是使用kerberos凭据并登录我。所以现在我已经解释了我曾经拥有的功能,有没有人知道是否有可能使用kerberos和ssh恢复它?如果您想让朋友代表您运行命令而不向他们提供您的密码(http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch08_02.htm),则多个身份文件非常有用。我真的希望这仍然有可能。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这取决于服务器是否仍然接受pubkey身份验证(看起来它没有,否则kerberos身份验证没有任何意义)。

根据操作系统的供应商,可能会设置.k5login,但可能无法解决问题。区分命令的更好方法是在客户端上使用一些别名:

alias sayHi="ssh -K host echo Hi"
alias sayHello="ssh -K host echo Hello"

~/.bashrc