Comment SCP du serveur Linux au client Windows


23

Je suis SSHing dans une machine Linux en utilisant PuTTY et j'essaie de copier un fichier quelque part (n'importe où) sur ma machine locale. Je figure que SCP est le meilleur candidat pour le poste , mais ne se soucient pas vraiment, tant que les travaux de solution!

I cddans le répertoire contenant le fichier que je veux ( app.war) et tapez ce qui suit:

scp app.war ./

J'ai essayé les deux en vain:

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

Cela m'a fait penser que peut-être SCP est un outil client / serveur et nécessite un client sur ma machine Windows, qui n'est pas là.

Suis-je en train d'utiliser la mauvaise syntaxe? Ou suis-je loin de la base? Si oui, quelles options ai-je? Merci d'avance!


La vraie réponse à cette question est ici: stackoverflow.com/a/23412501/1579667 . La syntaxe estscp some_file user@host:/c/temp
Benj

Voir également Client et serveur Bitvise SSH. Il s'agit de l'un des plus anciens logiciels SSH pour Windows. Le client est un téléchargement gratuit et gratuit à utiliser.
Jww

Réponses:


25

pour que vous puissiez copier des fichiers vers votre Windows, vous avez besoin que le démon / service SSH s'exécute sur votre Windows, il est beaucoup plus facile d'utiliser cet outil à la place, il a la possibilité d'importer des sessions à partir de Putty, un client direct très simple que vous aurez aimer!

WinSCP :: Client SFTP et FTP gratuit pour Windows


Juste un outil génial :). J'ai adoré \ m /
Chaitanya

Cela ne répond pas vraiment à la question d'origine, qui vivait dans la ligne de commande. Voir mon commentaire ci-dessous la question d'origine.
Benj

@Benj OP a demandé une solution, WinSCPest une bonne solution pour cette tâche.
alexus

12

Vous avez raison. SSHD est les services du serveur SSH qui s'exécutent sur l'hôte. Il accepte les connexions des clients SSH (comme PuTTy), des clients SCP et des clients SFTP.

Vous pouvez télécharger à pscppartir du même site Web où PuTTY est hébergé.

À partir de la machine Windows, vous exécuteriez une commande similaire à

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


2

Pour SCP un fichier sur une machine Windows, vous avez besoin d'un serveur SSH / SCP sur Windows.

Il n'y a pas de prise en charge SSH / SCP dans Windows par défaut. Vous pouvez installer la version Microsoft d' OpenSSH pour Windows ( versions et téléchargements ). Il est disponible en tant que fonctionnalité facultative sur Windows 10 version 1803 et plus récente. Il peut également être installé manuellement sur les anciennes versions de Windows.

J'ai préparé un guide pour la configuration du serveur SSH / SFTP sous Windows à l'aide de cette version Microsoft d'OpenSSH .

Voir aussi IIS SFTP est-il pris en charge nativement par Windows?


Bien que lorsque vous vous connectez au serveur Linux depuis la machine Windows, vous pouvez réellement télécharger un fichier du serveur Linux vers le serveur Windows, au lieu d'essayer de télécharger le fichier du serveur Linux vers le serveur Windows.

Si vous avez un accès SSH de Windows à Linux, vous avez également un accès SCP (ou encore mieux un accès SFTP).

Utilisez n'importe quel client SCP / SFTP disponible.

Vous pouvez utiliser le client WinSCP SFTP / SCP , qui possède à la fois une interface graphique et une interface de ligne de commande .

Une autre alternative est le jeu d'outils PuTTY, qui comprend l' pscpoutil de ligne de commande avec une syntaxe similaire à la scpcommande OpenSSH . Les dernières versions de Windows 10 sont également livrées avec OpenSSH scpintégré et peuvent également être installées sur des versions plus anciennes.

(Je suis l'auteur de WinSCP)


existe-t-il une version de pscp pour OSX / Linux?
codingknob

@codingknob Bien sûr, il existe un package "putty" pour de nombreuses distributions. Bien que le pscpsoit fonctionnellement identique à OpenSSH scp, qui est déjà disponible sur toutes / la plupart des distributions.
Martin Prikryl

1

Windows 10 intègre désormais OpenSSH. Https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Obtenez une invite de commande administrateur

Open PowerShell as an Administrator.

Vérifier les versions disponibles

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

Installer le client

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

Installer le serveur

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

Démarrer le serveur et activer au démarrage

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

Trouvez votre adresse IP Windows

ipconfig

Sur votre machine distante (Linux), recherchez votre adresse IP.

ifconfig

Créer une clé SSH publique

ssh-keygen.exe

Copiez la clé publique d'une machine locale (Windows) vers une machine distante (Linux) afin de ne pas avoir à taper un mot de passe tout le temps.

Notez que ssh-copy-id n'est pas actuellement disponible sur Windows.

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

Faites de même sur votre machine Linux (Remarque, ssh-copy-id ne fonctionne pas)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • La méthode ci-dessus n'a pas fonctionné pour moi, j'ai donc fini par SCP manuellement la clé publique et la coller dans le fichier C: /Users/YOU/.ssh/authorized_keys.

  • Cela ne fonctionnait toujours pas, j'ai donc dû modifier le fichier sshd_config.

    • Ouvrez le Bloc-notes en tant qu'administrateur

    • Ouvrez% programdata% \ ssh \ sshd_config

    • Ajoutez les lignes suivantes:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • Redémarrer

Créez un mot de passe sous Windows si vous n'en avez pas déjà un

System Settings...Sign-in options

- Remarque, vous pouvez toujours désactiver l'écran de connexion Windows en a) définissant l'option `` Connexion requise '' sur jamais et b) en utilisant la commande `` netplwiz '' et en décochant la case `` Les utilisateurs doivent entrer le mot de passe ... ''.

Vous devriez maintenant pouvoir SSH ou SCP depuis votre machine Linux

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

1

Vous pouvez le faire en utilisant le sous-système Linux Ubuntu pour Windows (vous devez l'activer en tant que fonctionnalité Windows). Ensuite, vous pouvez utiliser un client de terminal Linux qui s'exécute sur Windows en l'obtenant sur le Microsoft Store (par exemple Ubuntu 16.04 LTS). Ensuite, si vous avez configuré la sécurité ssh pour vous scpconnecter à distance à votre machine Linux, vous pouvez à partir de votre terminal Windows Ubuntu local (lorsque vous êtes connecté en tant que nom d'utilisateur que vous avez défini pour votre instance Linux) quelque chose comme ceci:

scp -i ~/.ssh/my_rsa username@11.11.11.11:~/myfile ~/ ... entrez le mot de passe RSA

Le fichier distant sera copié dans votre système de fichiers Ubuntu local utilisé par Windows, par exemple

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


1
Dans les dernières versions de Windows 10, (Win32-OpenSSH) scp(.exe)est intégré. Vous n'avez pas besoin d'installer quoi que ce soit.
Martin Prikryl

-1

Étape 1: Téléchargez pscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
(en fonction de votre machine, téléchargez la version correspondante)

Étape 2: Familiarisez-vous avec les commandes pscp
Pour ce faire, ouvrez l'invite de commande sur votre machine Windows, accédez au répertoire où vous avez téléchargé pscp.exe et tapez "pscp"

Étape 3: Transférez le fichier de votre machine Linux vers la machine Windows,
ouvrez votre invite de commande et exécutez la commande ci-dessous en fournissant vos détails:

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

et cette commande transférera le fichier de votre machine Linux vers le répertoire courant de votre machine Windows

Étape 4: Transférez le fichier de votre machine Windows vers une machine Linux
ouvrez votre invite de commande et exécutez la commande ci-dessous en fournissant vos détails:

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

J'espère que cela est clair et fonctionne pour vous tous!


2
Les réponses de lien uniquement sont plutôt inutiles car elles peuvent cesser de fonctionner à l'avenir - essayez d'élargir votre réponse en expliquant les étapes de la vidéo.
djsmiley2k dans l'obscurité
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.