我们将文件传输到应用程序中的远程服务器,所需的身份验证方法是使用 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以了解详细信息
阅读您的问题时,我的第一印象是 IT 人员混淆了 SSH 和 SSL(必须由我们签名),并且也不了解 SSL 签名的真正工作原理。
无论如何,无法对 SSH 密钥进行签名(我知道)。
这个请求有些不对劲。
如果它将签名的文件传送到服务器,
我希望这能以最低限度完成。
my-key-privatemy-key-pub来解密文件还有其他方法可以完成此类操作,
但是,获取其他人生成的密钥对作为身份验证方案是没有用的。
它强烈暗示您信任他们就像信任自己一样。
这些是您可以向 IT 部门提出的开放性问题。
如果问责制是IT 所 关心的问题,