我基本上想按照这个 serverfault 问题所以我希望一群人(“管理员”)能够ssh
使用存储隐藏服务器私钥的跳转箱登录到许多隐藏服务器。
由于更新authorized_keys
隐藏服务器的成本相当高,我只想通过修改跳转箱来控制对它们的访问,即通过更改authorized_keys
跳转箱上的文件来添加或删除“管理员”。
我特别不想将存储在跳转箱中的私钥泄露给管理员,因此链接问题答案中提到的 ssh-agent+ProxyCommand 方法将不起作用,因为代理会将私钥从跳转箱发送给“管理员”,如果我理解正确的话。
相反,简单地做
ssh -tt jumpbox ssh hidden_server_1
缺点是“管理员”无法scp
轻松使用和端口转发。
注意:应使用自定义脚本作为登录 shell(仅允许执行必要的命令)来禁用“管理员”对跳转箱的 Shell 访问。
有没有安全便捷的方法,既能保持scp
端口转发的舒适性,又不削弱安全约束?
非常感谢您的帮助!
答案1
如果不能读取(从而复制)私钥,就不可能“使用”该私钥。因此,管理员可以登录到 jumpbox,然后使用他们无法直接访问的私钥继续操作的想法是行不通的。
但你可以安排事情,以便私钥可以仅有的可以从跳转箱中使用(请参阅man sshd
AUTHORIZED_KEYSfrom=
文件格式)。然后,拒绝特定管理员访问跳转箱将使他或她持有的密钥不再有用。
这是否满足您的安全限制?
请注意,您写的内容好像所有远程管理员都在访问跳转箱上的共享帐户。如果这是我的系统,我不会这样做;我会让每个远程管理员在跳转箱上都有一个单独的帐户,所有这些帐户都可以访问或复制相关的专属前向密钥对。这使得撤销单个管理员对跳转箱的访问权限变得更加容易和可靠。