So können Sie beliebige Verbindungen über bekannte SSH-Server problemlos bouncen, um die Firewall-Firewall zu vermeiden

1

Ich suchte nach einer Methode, um über einen bekannten SSH-Proxy eine Verbindung zu beliebigen SSH-Servern herzustellen, ohne diese Zielserver hardcodieren zu müssen.

Angenommen, ich kann von meinem aktuellen Standort aus nicht auf github.com zugreifen, da der Port 22 durch eine Firewall geschützt ist. Ich kann jedoch eine Verbindung zu meinem SSH-Server zu Hause herstellen, da er über einen nicht Firewall-Port geht. Was ist der praktischste Weg, um SSH so zu konfigurieren, dass wenn ich explizit eine Verbindung über meinen Proxy herstellen möchte, dies geschieht?

Ich wollte eine einfache Lösung. das wäre so einfach wie das Tippen:

$ ssh [email protected]

Ein Beispiel wäre "ssh [email protected]".

sleblanc
quelle
1
Wenn Sie von Proxy sprechen, meinen Sie einen HTTP-Proxy? Wenn ja, überprüfen Sie den Korkenzieher agroman.net/korkenzieher
jackweirdy
Nein, mit Proxy meine ich einen SSH-Server, zu dem Sie eine Verbindung herstellen können (eine Maschine, die Sie besitzen). Ich habe einen Weg gefunden, es zu tun, aber ich muss 8 Stunden warten, bevor ich meine eigene Frage beantworten kann ...
sleblanc

Antworten:

2

Fügen Sie so etwas zu Ihrem hinzu .ssh/config

Host *%myproxy
    ProxyCommand ssh [email protected] /bin/netcat -w 1 $(echo %h | cut -d%% -f1) 22

Dann kannst du einfach einen Befehl ausführen wie ssh user@server-i-want-to-connect-to%myproxy. Auf Ihrem Server muss netcat als Proxy installiert sein.

Zoredache
quelle
Dies ist fast genau die Antwort, die ich veröffentlichen wollte (ich könnte nicht, da ich vor Ablauf von 8 Stunden mehr Wiederholungsantwort brauche, um eine Antwort zu posten). Allerdings würde ich dem Befehl netcat statt "hardcoded" den "% p" -Prozentsatz hinzufügen. Dies ermöglicht die Angabe einer beliebigen Portnummer, zu der eine Verbindung hergestellt werden soll. Oh, und ich habe Sed benutzt, anstatt zu schneiden.
sleblanc