
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.