SSH-Tunnel zwischen zwei Servern mit Schlüsseln

481
MayField

Ich habe zwei Server, A und B, die zwei verschiedene Schlüssel verwenden. Ich arbeite auf Server A und muss Dateien auf Server B übertragen. Aber ich habe Probleme beim Übertragen der Dateien, da die Serververbindung abgelehnt wurde, als ich den folgenden SSH-Tunnel ausprobierte.

Von Server A:

ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A 

dann scheint es eine Pause zu geben, und nach einer Weile läuft die Verbindung ab.

Wenn ich mit meinem Schlüssel normalerweise wie folgt scp, schaffe ich es, meine Dateien zu übertragen, und kombiniere die Codes, die ich in scp und ssh verwende.

ssh -i key -L 1234:server_B:22 -p 45678 user_in_A@server_A 

aber es hat nicht funktioniert.

Bevor ich das tat, habe ich gegoogelt, oder es gibt einen Weg, das zu tun. Aber die meisten Antworten und Erklärungen scheinen zu ssh -L ...einem Schlüssel ohne Schlüssel zu führen. Was habe ich hier vermisst? Vielleicht ein Konzept, das ich noch nicht verstanden habe, oder ich bin weit weg von meinem Ziel?

0

1 Antwort auf die Frage

1
telcoM

Wenn Server A eine TCP-Verbindung zu Port 22 von Server B herstellen kann und Sie diese Befehle in Server A eingeben, ist der Tunnel nicht erforderlich.

ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A 

Wenn Sie diesen Befehl auf Server A ausführen, bedeutet dies:

  • Sie erwarten, dass Server A sshdPort 45678 hat
  • Sie stellen eine SSH-Verbindung von Server A zu User_in_A @ Server_A her
  • Sie richten auch einen Tunnel vom Port 1234 von Server A zum Port 22 von Server B ein. Das heißt, Server A sshdwird in Port 1234 auf Server A einen TCP-Proxy einrichten und die Verbindung (en) an Port 22 des Servers weiterleiten B.

Da die SSH-Verbindung vom Server A zum Server A erfolgt, befindet sich der verschlüsselte Teil des Tunnels vollständig im Server A und ist somit ziemlich nutzlos. Wenn der Tunnel funktioniert, können Sie einfach scpDateien übertragen, ohne den Tunnel zu erstellen:

scp -i key_for_user_in_B /some/where/local/files user_in_B@server_B: 

oder

scp -i key_for_user_in_B user_in_B@server_B:/some/remote/path /some/local/path/ 

Beim ersten werden Dateien von "local" (A) nach B "verschoben", mit dem zweiten werden Dateien von B nach "local" (A) "gezogen".