我正在尝试编写一个脚本,通过使用另一个脚本作为 ProxyJump 连接到 Linux 服务器:
ssh -J root@proxyhost root@target
我有两个不同的密钥(实际上是 ssh 证书),我想告诉 ssh 将一个密钥用于代理主机,另一个密钥用于目标。我知道我可以为此修改 ssh 配置,但我想在命令行上指定它,这样我就不必依赖有效的 ssh 配置。
所以我在寻找类似的东西:
ssh -i proxyhostkey -J root@proxyhost -i targetkey root@target
ssh 手册页的-J
选项说明如下(重点是我的):
请注意,命令行上提供的配置指令 一般来说适用于目标主机,而不是任何指定的跳转主机。使用 ~/.ssh/config 指定跳转主机的配置。
我可以做我想做的事吗?还是我必须确保文件~/.ssh/config
正确?
答案1
不,你要么
使用两个
-i
参数并允许 ssh 提供两个都-i
两个服务器的密钥(对战的顺序-J
无关紧要);或者
-J
用手动 ProxyCommand 替换:ssh target -oProxyCommand="ssh proxyhost -i ~/otherkey -W %h:%p" -i ~/thiskey