web-dev-qa-db-de.com

So führen Sie einen SCP-Vorgang vom Linux-Server zum Windows-Client durch

Ich stelle mit PuTTY eine SSH-Verbindung zu einem Linux-Computer her und versuche, eine Datei irgendwo (irgendwo) auf meinen lokalen Computer zu kopieren. Ich finde, SCP ist der beste Kandidat für den Job, aber es ist mir egal, solange die Lösung funktioniert!

Ich cd in das Verzeichnis mit der gewünschten Datei (app.war) und tippe Folgendes ein:

scp app.war ./

Ich habe beide erfolglos versucht:

scp app.war ./C:/Users/myUser/
scp app.war ./Users/myUser/

Ich habe gedacht, dass SCP möglicherweise ein Client/Server-Tool ist und einen Client auf meinem Windows-Computer erfordert, der nicht vorhanden ist.

Benutze ich nur die falsche Syntax? Oder bin ich weit weg von der Basis? Wenn ja, welche Optionen habe ich? Danke im Voraus!

18
pnongrata

damit Sie Dateien zurück auf Ihr Windows kopieren können, müssen Sie einen SSH-Daemon/-Dienst auf Ihrem Windows ausführen. Stattdessen können Sie dieses Tool viel einfacher verwenden und Sitzungen von PuTTY importieren Liebe es!

WinSCP :: Free SFTP und FTP Client für Windows

19
alexus

Du hast Recht. SSHD ist der SSH-Serverdienst, der auf dem Host ausgeführt wird. Es akzeptiert Verbindungen von SSH-Clients (wie PuTTY), SCP-Clients und SFTP-Clients.

Sie können pscp von derselben Website herunterladen, auf der PuTTY gehostet wird.

Auf dem Windows-Computer würden Sie einen Befehl ausführen, der dem folgenden ähnelt

pscp.exe [email protected]:/path/to/app.war c:\tmp

9
George M

Um eine Datei auf einen Windows-Computer zu übertragen, benötigen Sie einen SSH/SCP-Server unter Windows.

In Windows gibt es standardmäßig keine SSH/SCP-Unterstützung. Sie können Microsoft Build von OpenSSH für Windows ( Releases und Downloads ) installieren. Es ist als optionale Funktion unter Windows 10 ab Version 1803 verfügbar. Es kann auch manuell auf älteren Windows-Versionen installiert werden.

Ich habe eine Anleitung zum Einrichten eines SSH/SFTP-Servers unter Windows mit diesem Microsoft-Build von OpenSSH erstellt.

Siehe auch Wird IIS SFTP nativ von Windows unterstützt?


Während Sie vom Windows-Computer aus SSH auf den Linux-Server ausführen, können Sie tatsächlich eine Datei vom Linux-Server auf den Windows-Server herunterladen, anstatt zu versuchen, die Datei vom Linux-Server auf den Windows-Server hochzuladen.

Wenn Sie einen SSH-Zugang von Windows zu Linux haben, haben Sie auch einen SCP-Zugang (oder noch besser einen SFTP-Zugang).

Verwenden Sie einen beliebigen verfügbaren SCP/SFTP-Client.

Sie können den WinSCP SFTP/SCP-Client verwenden, der sowohl GUI als auch Befehlszeilenschnittstelle enthält. .

Eine weitere Alternative ist das PuTTY-Toolset, das das Befehlszeilentool pscp mit einer Syntax ähnlich dem Befehl OpenSSH scp enthält.

(Ich bin der Autor von WinSCP)

2
Martin Prikryl

In Windows 10 ist jetzt OpenSSH integriert. https://docs.Microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Rufen Sie eine Admin-Eingabeaufforderung ab

Open PowerShell as an Administrator.

Überprüfen Sie die verfügbaren Versionen

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Client installieren

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Server installieren

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Starten Sie den Server und aktivieren Sie ihn beim Booten

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

Finden Sie Ihre Windows-IP-Adresse

ipconfig

Suchen Sie auf Ihrem Remote-Computer (Linux) Ihre IP-Adresse.

ifconfig

Erstellen Sie einen öffentlichen SSH-Schlüssel

ssh-keygen.exe

Kopieren Sie den öffentlichen Schlüssel von einem lokalen (Windows) auf einen entfernten (Linux) Computer, damit Sie nicht ständig ein Kennwort eingeben müssen.

Beachten Sie, dass ssh-copy-id derzeit unter Windows nicht verfügbar ist.

cat C:\Users\YOU/.ssh/id_rsa.pub | ssh [email protected]_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

Machen Sie dasselbe auf Ihrem Linux-Rechner (Hinweis, ssh-copy-id funktioniert nicht)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh [email protected]_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • Die obige Methode hat bei mir nicht funktioniert, sodass ich den öffentlichen Schlüssel manuell über SCP verschoben und in die Datei C: /Users/YOU/.ssh/authorized_keys eingefügt habe.

  • Das hat immer noch nicht funktioniert, also musste ich die Datei sshd_config ändern.

    • Öffnen Sie den Editor als Administrator

    • Öffnen Sie% programdata%\ssh\sshd_config

    • Fügen Sie die folgenden Zeilen hinzu:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • Starten Sie neu

Erstellen Sie unter Windows ein Kennwort, falls Sie noch keines haben

System Settings...Sign-in options

- Beachten Sie, dass Sie den Windows-Anmeldebildschirm weiterhin deaktivieren können, indem Sie a) die Option "Anmeldung erforderlich" auf "Nie" setzen und b) das Kontrollkästchen "Benutzer müssen Kennwort eingeben ..." deaktivieren.

Jetzt sollten Sie in der Lage sein, SSH oder SCP von Ihrem Linux-Computer aus auszuführen

scp FILE WINDOWS_IP:C:/Users/YOU/Desktop
0
ishmael