2016-04-06 17 views
-1

ich die Anleitung hier verwendet, um einen Multi-Hop-ssh-Tunnel zu erzeugen:ssh in Remote-Host nach dem Multi-Hop-SSH-Tunnel

http://blog.naenius.com/2011/06/ssh-tunneling-across-multiple-hosts-in-linux/

die wie

einen Tunnel baut

'localhost' -> 'host1' -> 'host2'

Insbesondere I verwendet:

ssh -t -t -L[LOCAL_PORT]:localhost:[PORT_ON_A] [USER]@[SERVER_A] 'ssh -L[PORT_ON_A]:localhost:[PORT_ON_B] [USER]@[SERVER_B]' 

, die nach Ausführung ein Terminal auf Host2 öffnet.

Jetzt, wo ich das getan haben, würde ich per ssh verbinden möchten direkt an host2 von localhost, das würde ich naiverweise, dass durch erreicht wird erwartet:

ssh localhost:[LOCAL_PORT] 

Allerdings habe ich nur bekommen:

ssh: konnte nicht den Hostnamen localhost auflösen: 2345: Name oder eine Dienstleistung nicht

bekannt

Irgendwelche Ideen?

EDIT:

Versuchte Maschine IP:

ssh [MACHINE_IP]:[LOCAL_PORT] 

, aber es funktioniert auch nicht.

aber hier ist etwas, das

funktioniert, wenn ich tun:

ssh -L 1234:[SERVER_B]:22 [USER]@[SERVER_A] 

ich dann direkt aus meinem Rechner kopieren können via server_b:

scp -P 1234 local_path_to_file [USER] @ 127.0.0.01:

aber:

ssh 127.0.0.01:1234 

kehrt

ssh: Könnte nicht Hostnamen 127.0.0 lösen.01: 1234: Name oder eine Dienstleistung nicht bekannt

nicht sicher, ob das

EDIT2 ist aufschlussreich: Das ist/etc/hosts

cat /etc/hosts                                      
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6 
+1

Versuchen ohne die "01". So: 127.0.0.1. Können Sie auch den Inhalt Ihrer '/ etc/hosts' Datei posten? –

+0

127.0.0.1 führt auch zum gleichen Problem. Ich habe den Inhalt von Hosts eingefügt, hoffe, dass das hilft. – elelias

+1

Ports zu SSH over für die Hauptverbindung werden mit '-p' angegeben, nicht mit einem': Suffix'. 'ssh -p [LOCAL_PORT] localhost' –

Antwort

2
ssh 127.0.0.01:1234 

Die OpenSSH ssh utility, was wahrscheinlich ist, was Sie verwenden hier, erlaubt es Ihnen nicht ein Port auf diese Weise zu spezifizieren. Es nimmt die gesamte Zeichenfolge "127.0.0.01:1234" und versucht, es als Hostname aufzulösen.

Der richtige Weg, dies zu laufen ist:

ssh -p 1234 127.0.0.1 
+0

Ja, jemand anderes kommentierte mit dieser Lösung, bot ich an, es eine Antwort zu machen, die ich akzeptieren konnte, aber er antwortete nicht. Akzeptieren Sie dies, da es die richtige Antwort ist. – elelias

1

Sofern Firewall-Einschränkungen Sie es leugnen zu [PORT_ON_B] zugreifen direkt von SERVER_A, können Sie genau das tun:

ssh -L[LOCAL_PORT]:[SERVER_B]:[PORT_ON_B] [USER]@[SERVER_A] 

Danach:

ssh localhost:[LOCAL_PORT] 

Vorausgesetzt, es ist ein SSH-Server auf [SERVER_B][PORT_ON_B] hören.

Ihr Ansatz sollte auch funktionieren. Sie sollten prüfen, ob beide SSH-SERVER Tunneling unterstützen (obwohl es standardmäßig aktiviert ist, könnte es bei der Serverkonfiguration deaktiviert werden).

+0

nur um klar zu sein, "localhost" ist keine Variable oder ein Platzhalter, es ist buchstäblich das Wort "localhost", richtig? – elelias

+1

Korrekte @elelias. Es ist buchstäblich das Wort "localhost". Wenn das nicht funktioniert, ist Ihre '/ etc/hosts' möglicherweise nicht richtig eingerichtet. Versuchen Sie stattdessen, die IP-Adresse Ihres Geräts zu verwenden. –

+0

danke, siehe meine Bearbeitung – elelias

Verwandte Themen