这是我的标准工作 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
简化这种类型的选项
ProxyCommand
是ProxyJump
*。使用并定义in部分ProxyJump otherHostname
的所有自定义选项。(如果有,请注意:对于每个参数,将使用第一个获得的值。)otherHostname
Host otherHostname
Host *
但你
ProxyJump
已经在使用了。手册指出:(来源
man 5 ssh_config
:)你
ProxyJump
是第一,它就会赢。这意味着你已经替换了ProxyCommand
,该行ProxyCommand
没有用。* 我所说的“这种类型”是指
ssh -W %h:%p …
。一般来说ProxyCommand
是比较强大的,命令可以是任何东西,不一定用于实际代理。例如,可以限制带宽)。