
Ich habe kürzlich entdeckt ~/.ssh/config
, dass ich mit viele Tastenanschläge sparen und lange Befehlszeilen automatisieren kann, indem ich viele Vorgabewerte für jeden Host spezifiziere. Nachdem ich nun festgestellt habe, wie leistungsfähig das Tool sein kann, frage ich mich, ob es für einen anderen meiner Anwendungsfälle geeignet ist.
Ich habe Zugriff auf zwei Hosts bastion
und wikispy
. Bastion hat eine externe IP und wikispy
ist nur von der internen aus sichtbar. Das bedeutet, dass wikispy
ich normalerweise, um eine Verbindung zu herzustellen, zuerst per SSH eine Verbindung zu herstellen bastion
und dann aufrufen muss ssh wikispy
. Dinge wie die Portweiterleitung werden auf diese Weise natürlich komplizierter und das ist etwas, das ich vermeiden möchte.
Dies führt zu einer Frage: Kann ich irgendwie ~/.ssh/config
einen Eintrag erstellen, der angibt, „wenn der Benutzer einen Host mit der Bezeichnung anfordert wikispy
, tatsächlich eine Verbindung zu herstellen bastion
und dann aufrufen ssh wikispy
“? Wäre es möglich, transparent zu arbeiten, sodass ich Dinge wie aufrufen ssh wikispy -L 9999:localhost:9999
und bastion
den Port so weiterleiten könnte, dass ich von innerhalb von darauf zugreifen könnte wikispy
?
Antwort1
Hier scheint sich eine Kombination aus ProxyCommand
und nc
als nützlich zu erweisen. Hier ist eine Lösung – fügen Sie Folgendes zu hinzu ~/.ssh/config
:
Host bastion
HostName EXTERNAL_IP
User d
Host wikispy
HostName INTERNAL_IP
User d
ProxyCommand ssh bastion nc -q0 %h 22
EntsprechendDieser Artikelkönnen Sie auf diese Weise mehr als eine Verschachtelungsebene erhalten.