5 votes

Utilisation de la ligne de commande PuTTY pour télécharger un fichier via SSH

Je suis en train d'enquêter sur différentes options pour écrire un programme qui peut automatiser le téléchargement de fichiers sur un serveur SSH. J'ai besoin qu'il se connecte automatiquement, navigue vers différents répertoires et télécharge tous les fichiers à partir de là.

Cependant, après y avoir réfléchi davantage, il me semble que ce serait plus facile d'utiliser la ligne de commande PuTTY pour télécharger tous les fichiers de différents dossiers sur mon propre ordinateur Windows.

Actuellement, j'ai un compte root que je ne veux pas vraiment. (J'ai peur qu'il puisse y avoir un problème et que ce soit moi le responsable.) Pourrais-je demander à l'administrateur du serveur de me fournir un compte limité avec seulement des privilèges de lecture - et seulement pour ces répertoires ? Est-ce que PuTTY fonctionnerait toujours ou est-ce qu'il nécessite quelque chose de spécial sur le serveur SSH pour fonctionner ? Si c'est le cas, ce serait le moyen #1 pour moi de résoudre le problème de mon client.

12voto

Frank Thomas Points 33103

WinSCP est un bon client pour le transfert de fichiers via SSH et peut fonctionner à partir de la ligne de commande ou de l'interface graphique de Windows.

En ce qui concerne les droits, non, vous n'avez pas besoin de droits root pour ssh, et s'ils réduisent vos privilèges mais vous accordent les autorisations nécessaires sur les fichiers dont vous avez besoin, cela devrait parfaitement fonctionner pour vous. Personnellement, je n'autorise pas la connexion root via ssh, mais je n'ai pas tendance à exécuter des distributions qui activent un compte root par défaut.

7voto

Oliver Points 125

La suite d'utilitaires PuTTY comprend pscp qui est équivalent à la commande scp d'OpenSSH. Vous pouvez l'utiliser de cette manière :

pscp -pw mot_de_passe nom_utilisateur@serveur distant.com:/chemin/vers/dossier/* c:\dossier_local

Cela copiera tous les fichiers distants du dossier spécifié dans le dossier local et ne nécessiterait rien de spécial côté distant, à part autoriser l'accès ssh à l'utilisateur limité et l'accès au dossier.

Vous voudriez probablement envisager d'utiliser des clés publique/privée pour éviter de devoir mettre le mot de passe dans vos scripts - la deuxième réponse à cette question vous montre comment faire.

Ensuite, vous utiliseriez :

pscp -i /chemin/vers/cle_privee nom_utilisateur@serveur distant.com:/chemin/vers/dossier/* c:\dossier_local

Pour réaliser cela, le compte utilisateur devrait avoir un fichier /home/nom_utilisateur/.ssh/authorized_keys, et le serveur SSH devrait autoriser l'authentification par clé publique.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X