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

Leave a Reply

Votre adresse e-mail ne sera pas publiée.