SSH 跳转盒,跳转盒上有私钥

SSH 跳转盒,跳转盒上有私钥

我基本上想按照这个 serverfault 问题所以我希望一群人(“管理员”)能够ssh使用存储隐藏服务器私钥的跳转箱登录到许多隐藏服务器。

由于更新authorized_keys隐藏服务器的成本相当高,我只想通过修改跳转箱来控制对它们的访问,即通过更改authorized_keys跳转箱上的文件来添加或删除“管理员”。

我特别不想将存储在跳转箱中的私钥泄露给管理员,因此链接问题答案中提到的 ssh-agent+ProxyCommand 方法将不起作用,因为代理会将私钥从跳转箱发送给“管理员”,如果我理解正确的话。

相反,简单地做

ssh -tt jumpbox ssh hidden_server_1

缺点是“管理员”无法scp轻松使用和端口转发。

注意:应使用自定义脚本作为登录 shell(仅允许执行必要的命令)来禁用“管理员”对跳转箱的 Shell 访问。

有没有安全便捷的方法,既能保持scp端口转发的舒适性,又不削弱安全约束?

非常感谢您的帮助!

答案1

如果不能读取(从而复制)私钥,就不可能“使用”该私钥。因此,管理员可以登录到 jumpbox,然后使用他们无法直接访问的私钥继续操作的想法是行不通的。

但你可以安排事情,以便私钥可以仅有的可以从跳转箱中使用(请参阅man sshdAUTHORIZED_KEYSfrom=文件格式)。然后,拒绝特定管理员访问跳转箱将使他或她持有的密钥不再有用。

这是否满足您的安全限制?

请注意,您写的内容好像所有远程管理员都在访问跳转箱上的共享帐户。如果这是我的系统,我不会这样做;我会让每个远程管理员在跳转箱上都有一个单独的帐户,所有这些帐户都可以访问或复制相关的专属前向密钥对。这使得撤销单个管理员对跳转箱的访问权限变得更加容易和可靠。

相关内容