Mein scp hat keine Proxyjump Option

3

Ich möchte scpeine Datei an einen Host (C) über einen anderen Host (B) senden. Ich kann folgenden Befehl verwenden:

scp -oProxyCommand="ssh -W %h:%p B" thefile C:destination

und es funktioniert sehr gut, aber dieses funktioniert nicht:

scp -oProxyJump=B thefile C:destination

und ich erhalte den folgenden Fehler:

command-line: line 0: Bad configuration option: proxyjump

Ich habe das scpHandbuch durchgesehen ( man scp). Mein scpBefehl hat keine ProxyJumpOption, aber eine ProxyCommandOption. Ich habe aktualisiert, openssh-clientaber es hat nicht geholfen.

Kennt jemand den Grund?

Mostafa Tavakoli
quelle

Antworten:

1

Wenn Sie häufig Dateien über den Jump-Server an dieses Ziel kopieren, können Sie die Eingabe reduzieren, indem Sie einen Eintrag in der clientseitigen Datei ~ / .ssh / config erstellen:

Host C
  User dest_user1
  Hostname 5.6.7.8
  ProxyCommand  ssh user_on_B@B nc %h %p 2> /dev/null

Damit können Sie einfach: scp thefile C:destination. Der Hostname '5.6.7.8' im obigen Beispiel kann durch eine Computer-IP oder einen Namen ersetzt werden, der nur für den Jump-Server sichtbar ist (dh: kein globaler DNS-Eintrag).

Andre P
quelle
1
Verwenden Sie kein Netcat. Es ist möglicherweise nicht auf dem Proxy-Host installiert. Verwenden Sie das -Wwie in meiner Antwort.
Jakuje
5

Sie haben eine alte OpenSSH-Version, die diese ProxyJumpOption nicht unterstützt . Es wurde in OpenSSH 7.3 eingeführt. Wenn Sie es verwenden möchten, benötigen Sie diese oder eine neuere Version (möglicherweise nicht von Ihrer Distribution bereitgestellt).

Aber wie bereits gesagt, können Sie jeden ProxyJumpBefehl mit ProxyCommand(wie in der ursprünglichen Frage ausgeführt ) umschreiben :

Host C
  ProxyCommand ssh -W %h:%p B
Jakuje
quelle