【问题标题】:Kerberos and ssh multiple identitiesKerberos 和 ssh 多重身份
【发布时间】: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


【解决方案1】:

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

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

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

在你的~/.bashrc

【讨论】:

  • 因此,使用此设置确实无法在不提供密码的情况下授予非服务器用户的访问权限。我想念公钥。
  • 是的。出于安全原因,这是个好主意。我不知道我想让任何人访问我的ssh 的任何正当理由(即使使用强制命令)。
  • 例如使用您自己的私有 git 存储库。
  • 可能是这样。但这可能不是服务器的有意用例。您有机会与服务器管理员交谈。从客户端对此您无能为力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多