Script Sftp pour transférer des fichiers sous Linux avec un mot de passe
SFTP vous permet de transférer des fichiers en toute sécurité sous Linux. Mais parfois, vous devrez peut-être transférer automatiquement des fichiers à l’aide de SFTP. Dans de tels cas, l’invite de mot de passe peut poser un obstacle. Dans cet article, nous verrons comment créer un script SFTP pour transférer des fichiers sous Linux, avec un mot de passe. Vous devrez utiliser une bibliothèque tierce comme keychain, sshpass ou expect qui fournit automatiquement votre mot de passe SFTP, pour vous simplifier la vie. Pour notre article, nous utiliserons SSHpass. Nous verrons également comment configurer l’authentification par mot de passe sans délai sans utiliser SSHpass, en utilisant ssh-copy.
Qu’est-ce que SSHpass
SSHPass est un outil de ligne de commande simple qui vous permet de fournir des mots de passe à l’invite de commande et aux scripts afin que vous puissiez automatiser les tâches nécessitant une authentification, sans interruption. Il facilite l’authentification par mot de passe non interactif.
Script Sftp pour transférer des fichiers sous Linux avec un mot de passe
Voici les étapes pour transférer des fichiers sous Linux avec un mot de passe
Définissez le mot de passe SSH
Ouvrez terminal et exécutez la commande suivante pour définir votre mot de passe SSH. Remplacez votre -mot de passe-ici par votre mot de passe SSH.
export SSHPASS=your-password-here
Transférer un fichier sous Linux
Exécutez la commande suivante pour transférer des fichiers sous Linux. Remplacez user par votre nom d’utilisateur SFTP, remote-host par votre adresse d’hôte SFTP, /data par l’emplacement du dossier distant et your-file.connectez-vous avec le nom de fichier que vous souhaitez transférer.
sshpass -e sftp -oBatchMode=no -b - sftp-user@remote-host << ! cd /data put your-file.log bye!
Vous pouvez ajouter les deux commandes ci-dessus à votre fichier de script shell pour que votre script SFTP transfère des fichiers à l’aide d’un mot de passe.
De manière alternative
Vous pouvez également utiliser la fonction ssh-copy pour faire la même chose. Dans cette approche, vous devrez créer une clé publique pour votre client et ajouter cette clé publique sur votre serveur distant. Une fois que vous faites cela, le serveur distant utilisera toujours votre clé publique et cessera de vous demander un mot de passe.
Ouvrez terminal et exécutez la commande suivante pour créer une clé publique pour votre client.
ssh-keygen
Vous serez invité à poser 3 questions, appuyez simplement sur la touche entrée pour chaque invite. Cela générera votre clé publique.
Exécutez la commande suivante pour copier votre clé publique sur votre serveur remove SFTP. Remplacez remote-host par l’adresse IP de l’hôte de votre serveur SFTP.
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
Vous serez invité à accéder / rejeter la clé de l’hôte distant. Appuyez sur y yo acceptez-le. Ensuite, il vous sera demandé d’entrer le mot de passe de votre serveur distant. Saisissez-le pour ajouter votre clé publique à la liste des clés publiques acceptées du serveur distant. Vous pourrez le trouver dans.fichier ssh/authorized_key.
Désormais, vous ne serez pas invité à entrer un mot de passe lors de l’utilisation de scp, ssh ou sftp.
Dans cet article, nous avons examiné deux façons différentes de transférer des fichiers à l’aide de SFTP.
Lire aussi:
Comment Inverser la chaîne en Python
Comment Se connecter à la base de données PostgreSQL en utilisant Python
Comment Supprimer Snap dans Ubuntu
Comment Sélectionner des Enregistrements aléatoires dans MySQL
Comment Changer Récursivement le propriétaire du répertoire sous Linux