Ich verwende einen Jump-Server (lab1), um mich mit Servern zu verbinden, deren IPs mit 10.* beginnen. Alle anderen Server sollten lab1 nicht als Jump-Server verwenden und benötigen einen anderen Schlüssel.
In der Hauptkonfiguration sind zwei Konfigurationen und einige allgemeine Einstellungen enthalten:
Haupt-SSH-Konfiguration:
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
Datei lab.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
prod.conf:
Host prod1
HostName 122.140.12.1
Wenn ich mich mit Lab2 verbinde, sollte es ProxyJump verwenden, um mich über den Jump-Server (Lab1) zu verbinden, da ich eine Regel dafür habe. Host 10.*
Es verhält sich jedoch nicht wie erwartet.
Es funktioniert nur, wenn ich ProxyJump lab1
in Host lab2
den Abschnitt Folgendes eingebe:
Host lab2
HostName 10.10.10.2
ProxyJump lab1
Warum ProxyJump
wird der Parameter nicht vererbt?
Antwort1
Weil es mit dem Namen funktioniert, den Sie verwenden. Wenn Sie verwendet haben, ssh 10.10.10.2
würde Ihr Client die ProxyJump-Einstellung aus Ihrer Konfiguration verwenden. Wenn Sie jedoch verwenden, stimmt ssh lab2
der Wert nicht überein , sodass die Einstellung nicht verwendet wird. Es geht also nicht um Vererbung, sondern darum, dass SSH die Konfiguration nicht neu auswertet, sobald die Konfiguration für „lab2“ geladen ist und den Hostnamen-Wert findet.lab2
10.*
Wenn alle Ihre Computer in diesem 10.10.10.*
Netzwerk zufällig „lab*“ heißen, könnten Sie so etwas tun.
Host lab1
HostName 134.121.15.2
IdentityFile /SSH_keys/dev/id_rsa
Host lab* !lab1
ProxyJump lab1