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


21

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 Figur SCP der beste Kandidat für den Job ist , aber nicht wirklich interessieren, solange die Lösung funktioniert!

Wechseln Sie cdin das Verzeichnis mit der gewünschten Datei ( app.war) und geben Sie 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 Möglichkeiten habe ich? Danke im Voraus!


Die eigentliche Antwort auf diese Frage lautet hier: stackoverflow.com/a/23412501/1579667 . Syntax istscp some_file user@host:/c/temp
Benj

Siehe auch Bitvise SSH-Client und -Server. Es ist eine der ältesten SSH-Software für Windows. Der Client kann kostenlos heruntergeladen und verwendet werden.
10.

Antworten:


25

Damit Sie Dateien zurück auf Ihr Windows kopieren können, müssen Sie einen SSH-Daemon / -Dienst auf Ihrem Windows ausführen. Es ist viel einfacher, dieses Tool zu verwenden, und Sie können Sitzungen von Putty importieren, einem sehr einfachen Forward-Client Liebe es!

WinSCP :: Kostenloser SFTP- und FTP-Client für Windows


Einfach ein tolles Tool :). Liebte es \ m /
Chaitanya

Es beantwortet nicht wirklich die ursprüngliche Frage, die in der Kommandozeile lebte. Siehe meinen Kommentar unter der ursprünglichen Frage.
Benj

@Benj OP nach einer Lösung gefragt, WinSCPist eine gute Lösung für diese Aufgabe.
Alexus

11

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 pscpvon 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 someuser@somehost.com:/path/to/app.war c:\tmp


2

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 des 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 über eine grafische Benutzeroberfläche als auch über eine Befehlszeilenschnittstelle verfügt .

Eine weitere Alternative ist das PuTTY-Toolset, das das pscpBefehlszeilentool mit einer Syntax ähnlich dem OpenSSH- scpBefehl enthält. Auch die neuesten Versionen von Windows 10 sind mit OpenSSH ausgestattet scpund können auch auf älteren Versionen installiert werden.

(Ich bin der Autor von WinSCP)


Gibt es eine Version von pscp für OSX / Linux?
Codierknopf

@codingknob Sicher, es gibt ein "Kitt" -Paket für viele Distributionen. Das pscpist jedoch funktional identisch mit OpenSSH scp, das bereits für alle / die meisten Distributionen verfügbar ist.
Martin Prikryl

1

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 USER@REMOTE_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 USER@WINDOWS_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

Sie können dies mit dem Linux Ubuntu-Subsystem für Windows tun (Sie müssen dies als Windows-Funktion aktivieren). Dann können Sie einen Linux-Terminal-Client verwenden, der unter Windows ausgeführt wird, indem Sie ihn aus dem Microsoft Store beziehen (z. B. Ubuntu 16.04 LTS). Wenn Sie ssh security auf Ihrem Linux-Rechner auf remote eingestellt haben, können Sie scpvon Ihrem lokalen Windows Ubuntu-Terminal aus (wenn Sie als der Benutzername angemeldet sind, den Sie für Ihre Linux-Instanz festgelegt haben) Folgendes tun:

scp -i ~/.ssh/my_rsa username@11.11.11.11:~/myfile ~/ ... geben Sie die RSA-Passphrase ein

Die entfernte Datei wird in Ihr lokales Ubuntu-Dateisystem kopiert, das zB von Windows verwendet wird

C:\Users\my.username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\my_linux_username


1
In den neuesten Versionen von Windows 10 ist (Win32-OpenSSH) scp(.exe)integriert. Sie müssen nichts installieren.
Martin Prikryl

-1

Schritt 1: Laden Sie pscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html herunter
( Laden Sie basierend auf Ihrem Computer die entsprechende Version herunter)

Schritt 2: Machen Sie sich mit den pscp-Befehlen vertraut
Öffnen Sie dazu die Eingabeaufforderung auf Ihrem Windows-Computer, wechseln Sie in das Verzeichnis, in das Sie pscp.exe heruntergeladen haben, und geben Sie "pscp" ein.

Schritt 3: Übertragen Sie die Datei von Ihrem Linux-Computer auf einen Windows-Computer.
Öffnen Sie die Eingabeaufforderung und führen Sie den folgenden Befehl aus, um Ihre Details anzugeben:

pscp usernameofyourlinuxmachine@10.40.000.000:/path/of/your/File/nameofyourfile.txt ./

Dieser Befehl überträgt die Datei von Ihrem Linux-Computer in das aktuelle Verzeichnis Ihres Windows-Computers

Schritt 4: Übertragen Sie die Datei von Ihrem Windows-Computer auf einen Linux-Computer.
Öffnen Sie die Eingabeaufforderung und führen Sie den folgenden Befehl aus, und geben Sie Ihre Details ein:

pscp nameofyourfile.txt usernameofyourlinuxmachine@10.40.000.000:/path/where/youwantyourfile

Ich hoffe das ist klar und funktioniert für euch alle!


2
Nur-Link-Antworten sind wenig hilfreich, da sie in Zukunft möglicherweise nicht mehr funktionieren. Versuchen Sie, Ihre Antwort zu erweitern, indem Sie die Schritte im Video erläutern.
djsmiley2k - CoW
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.