ssh 配置:我可以替换代理命令吗?

ssh 配置:我可以替换代理命令吗?

这是我的标准工作 ssh 配置,每个人都使用:

host go
  User user
  ProxyJump otherHostname
  StrictHostKeyChecking=no
  UserKnownHostsFile=/dev/null
  IdentityFile ./ssh/key
  ProxyCommand ssh -i ~/.ssh/key -W %h:%p otherUser@OtherHostname

proxyCommand部分让我感到困扰,因为 ssh 配置的重点是没有使用命令。

命令参数是否有选项意味着配置中不会有 ssh 命令?

proxyCommand 使用该命令的 IdentityFile 和 ProxyJump 值:

ssh -i ~/.ssh/key -W %h:%p otherUser@OtherHostname

换句话说:

ssh -i IdentityFile -W %h:%p differe tUser@ProxyJump

答案1

简化这种类型的选项ProxyCommandProxyJump*。使用并定义in部分ProxyJump otherHostname的所有自定义选项。 (如果有,请注意:otherHostnameHost otherHostnameHost *对于每个参数,将使用第一个获得的值.)

但你ProxyJump已经在使用了。手册指出:

请注意,此选项将与该选项竞争ProxyCommand- 无论先指定哪个选项,都将阻止另一个选项的后续实例生效。

(来源:man 5 ssh_config

ProxyJump是第一,它就会赢。这意味着你已经替换了ProxyCommand,该行ProxyCommand没有用。


* 我所说的“这种类型”是指ssh -W %h:%p …。一般来说ProxyCommand是比较强大的,命令可以是任何东西,不一定用于实际代理。例如限制带宽是可能的)。

相关内容