Ich verbinde mich ständig mit einer Reihe von Maschinen, von verschiedenen physischen Standorten (und damit von verschiedenen physischen Maschinen). Das meiste wird über ssh gemacht, manchmal sind ein oder zwei Gateway-Rechner erforderlich (die ich über ProxyCommand
in aufrufe ~/.ssh/config
). Ich möchte wissen, ob es eine Methode gibt, um die IP-Adresse oder den Hostnamen des Computers zu identifizieren, der die ursprüngliche Verbindung (dh den Computer, an dem ich arbeite) am Remote-Ende aufruft.
- Ich möchte keine Umgebungsvariablen senden, da auf einigen Computern kein Root festgelegt werden muss
PermitUserEnvironment
. - Die
$SSH_CLIENT
Umgebungsvariable ist nützlich für direkte Verbindungen, listet jedoch nur das aktuellste Gateway auf.
Meine aktuelle Idee für eine Lösung ist $SSH_CLIENT
es, den $SSH_CLIENT
Wert dieser Maschine zu ermitteln und zu wiederholen, bis er nicht mehr existiert. Nehmen Sie dann den Hostnamen und ziehen Sie ihn irgendwie zurück.
Scheint allerdings ein bisschen wie ein Hack-Job zu sein; Hat jemand eine bessere Methode?
Ich arbeite hauptsächlich in einer Bash-Shell, freue mich aber auch über Vorschläge, die diese nicht verwenden.