Come SCP dal server Linux al client Windows


23

Sto SSHing su una macchina Linux usando PuTTY e sto provando a copiare un file da qualche parte (ovunque) sulla mia macchina locale. Immagino che SCP sia il miglior candidato per il lavoro, ma non mi interessa davvero, fintanto che la soluzione funziona!

I cdnella directory contenente il file I want ( app.war) e digitare quanto segue:

scp app.war ./

Ho provato entrambi inutilmente:

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

Mi ha fatto pensare che forse SCP è uno strumento client / server e richiede un client sul mio computer Windows, che non c'è.

Sto solo usando la sintassi sbagliata? O sono fuori base? In tal caso, quali opzioni ho? Grazie in anticipo!


La vera risposta a questa domanda è qui: stackoverflow.com/a/23412501/1579667 . La sintassi èscp some_file user@host:/c/temp
Benj il

Vedi anche client e server Bitvise SSH. È uno dei più antichi software SSH per Windows. Il client è un download gratuito e gratuito da usare.
jww

Risposte:


25

per poter copiare i file su Windows è necessario che il demone / servizio SSH sia in esecuzione su Windows, è molto più semplice utilizzare questo strumento, ha una capacità di importare sessioni da Putty, client forward molto semplice che lo adoro!

WinSCP :: Client SFTP e FTP gratuiti per Windows


Solo uno strumento fantastico :). Mi è piaciuto molto \ m /
Chaitanya il

In realtà non risponde alla domanda originale, che viveva nella riga di comando. Vedi il mio commento sotto la domanda originale.
Benj,

@Benj OP ha chiesto una soluzione, WinSCPè una buona soluzione per tale compito.
alexus,

12

Hai ragione. SSHD è i servizi del server SSH eseguiti sull'host. Accetta connessioni da client SSH (come PuTTy), client SCP e client SFTP.

È possibile scaricare pscpdallo stesso sito Web in cui è ospitato PuTTY .

Dal computer Windows, eseguiresti un comando simile a

pscp.exe someuser@somehost.com:/path/to/app.war c:\tmp


2

Per SCP un file su un computer Windows, è necessario un server SSH / SCP su Windows.

Non c'è supporto SSH / SCP in Windows per impostazione predefinita. È possibile installare la build Microsoft di OpenSSH per Windows ( versioni e download ). È disponibile come funzionalità opzionale su Windows 10 versione 1803 e successive. Può anche essere installato manualmente su versioni precedenti di Windows.

Ho preparato una guida per l'installazione del server SSH / SFTP su Windows utilizzando questa build Microsoft di OpenSSH .

Vedi anche IIS SFTP è nativamente supportato da Windows?


Sebbene mentre si esegue SSH nel server Linux dal computer Windows, in realtà è possibile scaricare un file dal server Linux al server Windows, invece di provare a caricare il file dal server Linux al server Windows.

Se hai un accesso SSH da Windows a Linux, hai anche un accesso SCP (o ancora meglio un accesso SFTP).

Utilizzare qualsiasi client SCP / SFTP disponibile.

È possibile utilizzare il client SFTP / SCP WinSCP , che ha sia l' interfaccia grafica che la riga di comando .

Un'altra alternativa è il set di strumenti PuTTY, che include lo pscpstrumento da riga di comando con una sintassi simile al scpcomando OpenSSH . Anche le ultime versioni di Windows 10 sono dotate di OpenSSH scpintegrato e possono essere installate anche su versioni precedenti.

(Sono l'autore di WinSCP)


esiste una versione di pscp per OSX / Linux?
codingknob,

@codingknob Certo, esiste un pacchetto "putty" per molte distribuzioni. Sebbene pscpsia funzionalmente identico a OpenSSH scp, che è già disponibile su quasi tutte le distribuzioni.
Martin Prikryl,

1

Windows 10 ora ha OpenSSH integrato. Https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Ottieni un prompt dei comandi dell'amministratore

Open PowerShell as an Administrator.

Controlla le versioni disponibili

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

Installa client

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

Installa server

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

Avviare il server e abilitare all'avvio

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

Trova il tuo indirizzo IP di Windows

ipconfig

Sul tuo computer remoto (Linux), trova il tuo indirizzo IP.

ifconfig

Crea una chiave SSH pubblica

ssh-keygen.exe

Copia la chiave pubblica dalla macchina locale (Windows) alla macchina remota (Linux) in modo da non dover inserire una password in ogni momento.

Nota che ssh-copy-id non è attualmente disponibile su Windows.

cat C:\Users\YOU/.ssh/id_rsa.pub | ssh USER@REMOTE_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

Fai lo stesso sul tuo computer Linux (Nota, ssh-copy-id non funziona)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • Il metodo sopra non ha funzionato per me, quindi ho finito per SCP manualmente la chiave pubblica e incollarla nel file C: /Users/YOU/.ssh/authorized_keys.

  • Non funzionava ancora, quindi ho dovuto modificare il file sshd_config.

    • Apri Blocco note come amministratore

    • Apri% programdata% \ ssh \ sshd_config

    • Aggiungi le seguenti righe:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • Reboot

Crea una password su Windows se non ne hai già una

System Settings...Sign-in options

- Nota, puoi sempre disabilitare la schermata di accesso di Windows a) Impostando l'opzione 'Richiedi accesso' su mai eb) Usando il comando 'netplwiz' e deselezionando la casella 'Gli utenti devono inserire la password ...'.

Ora dovresti essere in grado di SSH o SCP dalla tua macchina Linux

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

1

Puoi farlo usando il sottosistema Linux Ubuntu per Windows (devi abilitarlo come funzionalità di Windows). Quindi è possibile utilizzare un client terminal Linux che gira su Windows scaricandolo da Microsoft Store (ad esempio Ubuntu 16.04 LTS). Quindi, se hai la sicurezza ssh impostata su remoto nella tua macchina Linux, puoi scpdal tuo terminale Ubuntu di Windows locale (quando accedi come nome utente che hai impostato per la tua istanza di Linux) qualcosa del genere:

scp -i ~/.ssh/my_rsa username@11.11.11.11:~/myfile ~/ ... inserire la passphrase RSA

Il file remoto verrà copiato nel file system Ubuntu locale utilizzato da Windows, ad es

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


1
Nelle ultime versioni di Windows 10, (Win32-OpenSSH) scp(.exe)è integrato. Non è necessario installare nulla.
Martin Prikryl,

-1

Passaggio 1: scarica pscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
(in base al tuo computer scarica la rispettiva versione)

Passaggio 2: acquisire familiarità con i comandi pscp
Per fare ciò, aprire il prompt dei comandi nel computer Windows, andare alla directory in cui è stato scaricato pscp.exe e digitare "pscp"

Passaggio 3: trasferire i file dalla macchina Linux alla macchina Windows
aprire il prompt dei comandi ed eseguire il comando seguente fornendo i dettagli:

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

e questo comando trasferirà il file dalla tua macchina Linux alla directory corrente della tua macchina Windows

Passaggio 4: trasferire i file dal computer Windows al computer Linux
aprire il prompt dei comandi ed eseguire il comando seguente fornendo i dettagli:

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

Spero che sia chiaro e funzioni per tutti voi!


2
Le risposte al solo link sono piuttosto inutili in quanto potrebbero smettere di funzionare in futuro: prova ad espandere la tua risposta spiegando effettivamente i passaggi del video.
djsmiley2k nel buio,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.