Kopieren Sie Remote-Logdateien über 2 Hop-SSH-Sitzungen, ohne dass Sie Passwörter eingeben müssen.

Kopieren Sie Remote-Logdateien über 2 Hop-SSH-Sitzungen, ohne dass Sie Passwörter eingeben müssen.

Ich möchte die Protokolldatei von einem Remote-PC über einen Gateway-Server auf meinen lokalen PC übertragen, ohne Passwörter eingeben zu müssen. Der Gateway-Server verwendet acctA@gatewayServer. Der Remote-PC verwendet acctB@remotePC.

Ich habe die privaten/öffentlichen SSH-Schlüssel sowohl auf dem Gateway als auch auf der Remote-Basis eingerichtet.

Von meinem lokalen PC aus konnte ich über zwei Hops direkt per SSH auf den Remote-PC zugreifen, ohne die Passwörter der beiden Konten eingeben zu müssen. Dazu verwendete ich: ssh acctA@gatewayServer -t ssh acctB@remotePC

Aber wenn ich SCP mit ProxyCommand verwende, werde ich nach dem Passwort für acctB gefragt. Warum?

scp -Cp -o "ProxyCommand ssh -q acctA@gateway -W remotePC:22" acctB@remotePC:/opt/logpath/log1.tgz log01.tgz

Im Voraus vielen Dank und Anerkennung an alle, die Ratschläge geben können.

Antwort1

Am einfachsten ist es, diese Zeilen in Ihre.ssh/konfigurationDatei:

  Host remotePC
  User          acctB
  HostName      remotePC
  ProxyCommand  ssh AcctA@gatewayServer nc %h %p 2> /dev/null

Mit diesem können Sie dann ganz einfach eine Verbindung herstellen oder Dateien kopieren mittels:

  ssh remotePC
  scp acctB@remotePC:/home/AcctB/somefile .

Damit dies funktioniert, benötigen Sie den Netcat (keine)-Befehl, der auf dem Gateway-Server installiert ist.

Wenn Sie unbedingt einen Einzeiler brauchen (aber ich kann mir das alles nie merken), hier ist er:

ssh -o "ProxyCommand ssh acctA@gatewayServer nc -w 1 %h 22" acctB@remotePC

und ebenso für scp.

verwandte Informationen