我的本地电脑上有两个 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
更加笨重。
谢谢您的任何建议!