GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie scp über eine Zwischenmaschine?

Ich würde Folgendes in Ihrem .ssh/config vorschlagen :

Host C
    User user
    ProxyCommand ssh -W %h:%p [email protected]

Ich bin nicht viel sicherer, wenn Host B nicht vertrauenswürdig ist und für scp und sftp funktioniert.


Wie in dieser Antwort beschrieben, können Sie den ProxyCommand verwenden Direktive einen ssh haben host leiten Sie transparent an einen dritten Host weiter:

Angenommen, Sie haben die folgenden drei Hosts:

  • workstation.example.com - Dies ist die Maschine, an der Sie physisch arbeiten
  • proxy.example.com - Dies ist der Rechner, über den Sie Ihren SSH-Datenverkehr leiten
  • endpoint.example.com - Hier soll der Traffic letztendlich landen

In ~/.ssh/config auf workstation , fügen Sie Folgendes hinzu:

Host endpoint
    User endpointUser # set this to the username on the endpoint host
    HostName endpoint.example.com
    ProxyCommand ssh [email protected] nc %h %p 2> /dev/null

Auf der proxy Host, vergewissern Sie sich, dass nc (netcat) ist installiert.

Dann auf workstation , können Sie ssh endpoint oder sftp endpoint und Sie werden über Ihren Proxy-Host transparent an die Maschine weitergeleitet. scp wird auch funktionieren.


Es ist möglich und relativ einfach, selbst wenn Sie Zertifikate zur Authentifizierung verwenden müssen (typisch in AWS-Umgebungen).

Der folgende Befehl kopiert Dateien von einem remotePath auf server2 direkt auf Ihren Computer unter localPath. Intern wird die scp-Anfrage über server1 weitergeleitet.

scp -i user2-cert.pem -o ProxyCommand="ssh -i user1-cert.pem -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

Wenn Sie stattdessen die Kennwortauthentifizierung verwenden, versuchen Sie es mit

scp -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

Wenn Sie auf beiden Servern dieselben Benutzerdaten verwenden:

scp -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

Linux
  1. Wie kann ich zurück zum lokalen scp, wenn ich bereits auf den Remote-Computer geshshed habe?

  2. Wie übertrage ich meine SSH-Schlüssel auf einen anderen Computer?

  3. Rsync-Dateien über Zwischenhost

  4. Wie kann ich feststellen, ob ich über SSH angemeldet bin?

  5. Wie installiere ich Linux aus der Ferne über SSH?

So überwachen Sie eine Linux-Maschine über Nagios

So verbinden Sie sich über SSH mit Ihrem Webserver

So verbinden Sie sich über SSH mit Ihrem Server

So führen Sie SSH zum Server über Linux

So fügen Sie dem VS-Code einen SSH-Schlüssel hinzu und stellen eine Verbindung zu einem Host her

So deaktivieren Sie die Überprüfung des SSH-Hostschlüssels in Linux