【发布时间】:2016-09-10 09:05:06
【问题描述】:
也许这个问题的答案是不可能的,但希望有人知道如何解决这个问题。过去,在管理员在我们学校的机器上配置 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),则多个身份文件特别有用。我真的希望这仍然是可能的。提前致谢。
【问题讨论】:
-
你想达到什么目的?使用您的 kerberos 身份运行“强制命令”?或者使用公钥对服务器进行身份验证,即使您有 kerberos 票证?两者都取决于服务器的配置方式。
-
@jakuje 两者都很好,我没有关于如何做到这一点的经验,或者即使服务器管理员的当前设置允许它。任何页面显示这是如何完成的?
标签: linux macos ssh kerberos configuration-files