
Es gibt 3 Computer:
- lokaler Rechner (OSX)
- Server1 (CentOS 7 im Rechenzentrum, Port 22 offen)
- Server2 (CentOS 7 hinter NAT geschlossen)
Server2 unterhält einen Reverse-Tunnel zu Server1 auf Port 2222. Wird ssh localhost -p 2222
Server1 ausgeführt, gelangt man direkt zur Kommandozeile von Server2.
Wie kann ich am besten einen Tunnel vom lokalen Rechner über Server1 zu Server2 einrichten? Beispielsweise ist es möglich, einen Tunnel von localhost zu Server1 mit zu initiieren ssh -D 5000 -N root@server1
.
Wie kann ich den zusätzlichen Hop ausführen und den Tunnel vollständig vom lokalen Host über Server1 bis Server2 durchgehen lassen? Ich habe so etwas versucht, ssh -L 5000:localhost:5000 root@server1 ssh -L 5000:server2:2222 -N root@localhost
aber es hat nicht funktioniert
zB localhost -5000-> server1 -2222-> server2
Antwort1
Durch das Erstellen des Reverse-Tunnels haben Sie localhost:2222 auf Server1 mit Server2 verknüpft. Ich würde Ihnen empfehlen, jetzt einen Tunnel auf einer Portnummer Ihres lokalen OSX-Rechners zu Server1 zu erstellen (ich habe in diesem Beispiel 9999 ausgewählt), nur um Zugriff auf den Reverse-Tunnel zu erhalten, den Sie zuvor erstellt haben, d. h.
ssh -L 9999:localhost:2222 root@server1
Lassen Sie diese Option offen, damit Sie Ihren Double Hop zu Server2 einsatzbereit haben. Als nächstes sollten Sie in einem separaten Terminal Folgendes tun können:
ssh -p 9999 root@localhost
und erhalten Sie Zugriff auf Server2. Aus Sicherheitsgründen empfehle ich, root nicht für SSH-Verbindungen zu verwenden.