有没有签名的 SSH 密钥对这样的东西?

fei*_*pet 9 security ssh

我们将文件传输到应用程序中的远程服务器,所需的身份验证方法是使用 SSH 密钥。

因此,我使用 ssh-keygen 创建了我的密钥对,并提交了我的公钥以插入到远程主机的 authorized_keys 文件中。但是,这被 IT 安全部门拒绝,他们说他们会为我生成密钥对并将私钥发送给我。原因:“我们需要 IT 安全团队签署 SSH 密钥。这是为了确保我们在跟踪和问责方面有一定的领先优势。”

显然,我对此有问题。拥有其他人生成的私钥意味着我可以让那个人在我不知情的情况下伪装成我。我试图找到反驳这个论点的方法。

据我所知,似乎没有任何已知的方法可以对密钥进行签名,以帮助跟踪已登录的人。我提交了我的公钥这一事实意味着我拥有该密钥,并且默认情况下,使用该密钥登录远程服务器的任何人都会被识别为我自己。签约有什么帮助?无论如何,他们将如何签署?

如果我错了,请告诉我,谢谢!


好的,既然我们已经确定无法对 SSH 密钥进行签名,我需要向 IT 安全部门展示他们如何实际跟踪登录的人(我想,必须具有建设性,如果不是高压开始)。在我自己的服务器上,我将 sshd 的 LogLevel 设置为 DEBUG。所以现在当我登录时,我可以看到以下代码段:

Found matching DSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Run Code Online (Sandbox Code Playgroud)

这似乎是一个哈希值。我如何将此与使用了 authorized_keys 文件中的哪个公钥相关联?我知道还有另一行说:

debug1: matching key found: file /home/bofh/.ssh/authorized_keys2, line 1
Run Code Online (Sandbox Code Playgroud)

但这并不是因为如果我要在文件顶部插入一个键,将原始键向下推,行号可以很容易地更改。

谢谢!

Jam*_*ley 14

自从你提出问题以来,宇宙已经发生了变化。

Openssh5.4 添加了对您所追求的证书类型的支持。有关更多信息,请参阅http://www.openssh.org/txt/release-5.4(和手册页)上的发行说明,或者如果您真的想发疯,请查看PROTOCOL.certkeys以了解详细信息


Nie*_*jes 8

阅读您的问题时,我的第一印象是 IT 人员混淆了 SSH 和 SSL(必须由我们签名),并且也不了解 SSL 签名的真正工作原理。

无论如何,无法对 SSH 密钥进行签名(我知道)。


nik*_*nik 5

这个请求有些不对劲。

如果它将签名的文件传送到服务器,
我希望这能以最低限度完成。

  1. 您为自己创建一个密钥对(称之为“我的密钥”)
    • 当你想寄东西的时候
    • 你首先用它加密my-key-private
    • 然后将这个加密文件上传到服务器
    • 服务器上的某个人必须像这样逆转这个过程,
    • 他们用你my-key-pub来解密文件
    • 如果您已发送文件,解密将恢复它
    • 否则,他们将不会获得任何可用的文件
    • 实际上,您已使用您的私钥对文件进行了签名
    • 他们已使用您的公钥验证了签名
    • 责任由他们确认您已发送文件而生效

还有其他方法可以完成此类操作,
但是,获取其他人生成的密钥对作为身份验证方案是没有用的
它强烈暗示您信任他们就像信任自己一样。


这些是您可以向 IT 部门提出的开放性问题。
如果问责制是IT 所 关心的问题,

  1. 他们如何确保您不会共享/丢失他们给您的密钥对?和,
    • IT 部门提供的密钥对概念与 IT 部门提供给您的密码有何不同?
      在这种情况下,为什么还要费心使用密钥对呢?