我使用跳轉伺服器 (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
實驗室.conf:
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」的配置並找到主機名稱值後,ssh 不會重新評估配置。
如果該網路上的所有電腦10.10.10.*
碰巧都被命名為 lab*,您可以執行類似的操作。
Host lab1
HostName 134.121.15.2
IdentityFile /SSH_keys/dev/id_rsa
Host lab* !lab1
ProxyJump lab1