在代理处过滤 SSH 代理?

在代理处过滤 SSH 代理?

我的本地电脑上有两个 SSH 密钥 - 一个用于访问我的堡垒,一个用于访问堡垒后面的私人服务器。

按照是否可以使用本地机器上的一个命令通过代理进行 scp ?,我可以提供单个代理命令,以便从我的本地电脑无缝访问我的私人服务器:

Host bastion
    <bastion connection details as per usual>

Host private
    ProxyCommand ssh bastion -W %h:%p
    <private connection details as per usual>

效果很好,但如果我使用代理转发进行身份验证,就会暴露一个安全漏洞 -我的堡垒机和私钥均已转发到私钥服务器

这显然不是理想的——一旦我们通过它进行代理,Bastion 私钥就没有地方可用了。

我发现解决这个问题的唯一方法是放弃ProxyCommand并使用像这样的 2 步 ssh,扩展Host堡垒本身的直接部分。这假设堡垒上有一个进一步的配置文件来private从那里定义主机。

Host bastion private
    <bastion connection details as per usual>

Host private
    RequestTTY force
    RemoteCommand afssh -c /path/to/private/key -- private

从安全角度来看,我认为这没有什么问题,但它有点笨重,并且例如不起作用scp,所以我想知道是否有更好的方法来做到这一点?

您可能认为我可以afssh从本地 PC 拨打电话,但考虑到它是 SSH 的包装器,它会在启动代理连接之前过滤掉堡垒密钥,从而在执行时提示输入密码,这ProxyCommand更加笨重。

谢谢您的任何建议!

相关内容