我使用跳转服务器 (lab1) 连接到 IP 以 10.* 开头的服务器。所有其他服务器都不应使用 lab1 作为跳转服务器,并且需要不同的密钥。
主配置中包含两个配置和一些常规设置:
主要 ssh 配置:
Include ~/.ssh/lab.conf
Include ~/.ssh/prod.conf
Host *
AddKeysToAgent yes
UseKeychain yes
User rg2531
ForwardAgent yes
ServerAliveInterval 30
ServerAliveCountMax 10
IdentityFile /SSH_keys/prod/id_rsa
实验室配置文件:
Host 10.*
ProxyJump lab1
# Jump server
Host lab1
HostName 134.121.15.2
IdentityFile /SSH_keys/dev/id_rsa
# Individual hosts
Host lab2
HostName 10.10.10.2
产品.conf:
Host prod1
HostName 122.140.12.1
当我连接到 lab2 时,它应该使用 ProxyJump 通过跳转服务器(lab1)连接我,因为我有一个规则,Host 10.*
但它的行为并不按预期。
ProxyJump lab1
它仅当我放入以下部分时才有效Host lab2
:
Host lab2
HostName 10.10.10.2
ProxyJump lab1
为什么ProxyJump
param不能被继承?
答案1
因为它适用于您使用的名称。如果您使用,ssh 10.10.10.2
您的客户端将使用配置中的 ProxyJump 设置。但是如果您 使用ssh lab2
,则lab2
值不匹配10.*
,因此不使用该设置。所以这与继承无关,而是一旦加载了 `lab2 的配置并找到了 Hostname 值,ssh 就不会重新评估配置。
如果该网络上的所有计算机10.10.10.*
恰好都名为 lab*,那么您可以执行类似的操作。
Host lab1
HostName 134.121.15.2
IdentityFile /SSH_keys/dev/id_rsa
Host lab* !lab1
ProxyJump lab1