Exécuter une commande Linux via SSH en précisant le mot de passe

openssh

Un des avantages de SSH est de pouvoir utiliser un client SSH afin d'exécuter diverses commandes d'administration.

Pour se faire, on peut utiliser divers clients mais le plus utilisé et connu est de loin OpenSSH

Toutefois, lorsque l'on se connecte via OpenSSH, des informations de connection nous sont demandées, notamment le mot de passe de connection.

En effet, pour exécuter une commande il nous faut passer à la fois l'identifiant et le mot de passe de connection:

ssh [email protected] mon_mot_de_passe 'ls /dataz'

Le problème est que cette commande utilise un mode dit intéractif qui nécessite différente opération de la part de l'utilisateur (des entrées claviers par exemple).

C'est pourquoi Linux propose le paquet sshpass qui permet d'exécuter des commandes en mode non intéractif via ssh en s'authentifiant avec un username et un mot de passe.

Pour installer le paquet sshpass, il suffit de faire:

apt-get install sshpass

Ensuite on peut utiliser sshpass en lui passant le mot de passe de la manière suivante:

sshpass -p 'mon_mot_de_passe' ssh [email protected] 'ls /dataz'

ou alors via la commande:

sshpass -p mon_mot_de_passe ssh -o StrictHostKeyChecking=no [email protected] 'ls /dataz'

Leave a Reply

Your email address will not be published. Required fields are marked *