web-dev-qa-db-fra.com

Comment faire pour SCP du serveur linux au client Windows

Je suis connecté à une machine Linux en utilisant PuTTY et j'essaie de copier un fichier quelque part (n'importe où) sur ma machine locale. Je chiffre SCP est le meilleur candidat pour le poste mais ne vous inquiétez pas vraiment, tant que la solution fonctionne!

Je cd dans 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 SCP est peut-être un outil client/serveur et nécessite un client sur ma machine Windows, ce qui n'existe pas.

Est-ce que j'utilise simplement la mauvaise syntaxe? Ou suis-je bien en dehors de la base? Si oui, quelles sont mes options? Merci d'avance!

18
pnongrata

pour pouvoir copier des fichiers sur votre Windows, vous avez besoin du démon/service SSH sur Windows, il est beaucoup plus facile d'utiliser cet outil. aimer!

WinSCP :: Client SFTP et FTP libre pour Windows

19
alexus

Vous avez raison. SSHD est le service de serveur SSH qui s'exécute sur l'hôte. Il accepte les connexions des clients SSH (tels que PuTTY), des clients SCP et des clients SFTP.

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

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

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

9
George M

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

Par défaut, Windows ne prend pas en charge SSH/SCP. Vous pouvez installer la version Microsoft de OpenSSH pour Windows ( Versions et téléchargements ). . Il est disponible en tant que fonctionnalité optionnelle sur Windows 10 versions 1803 et plus récentes. 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 Est-ce que IIS SFTP est pris en charge de manière native par Windows?


Même si vous utilisez SSH sur le serveur Linux à partir de la machine Windows, vous pouvez télécharger un fichier du serveur Linux sur le serveur Windows, au lieu d'essayer de télécharger le fichier du serveur Linux sur le serveur Windows.

Si vous disposez d’un accès SSH de Windows à Linux, vous disposez également d’un accès SCP (ou même, mieux, d’un accès SFTP).

Utilisez n’importe quel client SCP/SFTP disponible.

Vous pouvez utiliser le client WinSCP SFTP/SCP , qui possède les deux GUI et interface de ligne de commande .

Une autre alternative est le jeu d'outils PuTTY, qui inclut l'outil de ligne de commande pscp avec une syntaxe similaire à la commande OpenSSH scp.

(je suis l'auteur de WinSCP)

2
Martin Prikryl

OpenSSH est désormais intégré à Windows 10. https://docs.Microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse

Obtenir une invite de commande admin

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), trouvez votre adresse IP.

ifconfig

Créer une clé publique SSH

ssh-keygen.exe

Copiez la clé publique de la machine locale (Windows) vers la machine distante (Linux) afin que vous n'ayez pas à saisir un mot de passe à tout moment.

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

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

Faites la même chose 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 ne fonctionnait pas pour moi, alors je me suis retrouvé manuellement en SCP et en la collant dans le fichier C: /Users/YOU/.ssh/authorized_keys.

  • Cela ne fonctionnait toujours pas, alors j'ai 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émarrage

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 'Exiger la connexion' 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 utiliser SSH ou SCP à partir de votre machine Linux

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