Authentification SSH via expect

Suite à mon article sur l’authentification ssh par clé, je vous propose aujourd’hui une autre solution pour automatiser vos connexions. Nous allons utiliser le binaire expect. En fonction de votre système, vous devrez peut être l’installer, sous Mac OS X 10.6, il est installé de base.

#!/usr/bin/expect -f
 
# On récupère les paramètres de la ligne de commande
set user [lindex $argv 0]
set password [lindex $argv 1]
set host [lindex $argv 2]
 
# Defini le temps avant d'envoyer le mot de passe
set timeout 3
 
spawn ssh $user@$host
expect "password: $"
send "$password\r"
interact

Pour se connecter, on lance le script de cette façon :

./connexion.sh user password host

On peut modifier ce script pour l’appliquer à des connexions ftp, sftp, rsync,…

Le seul problème, c’est qu’en utilisant ce script le mot de passe utilisé apparaîtra en clair dans le terminal.

2 réflexions au sujet de “Authentification SSH via expect”

  1. Bonjour,
    Je tente en vain d’utiliser ce script sous OSX 10.7.5
    Voici le résultat de la commande :
    ./connexion.sh: line 11: spawn: command not found
    couldn’t read file « password: $ »: no such file or directory
    ./connexion.sh: line 13: send: command not found
    ./connexion.sh: line 14: interact: command not found
    Je ne suis pas encore familier avec le shell sour MAC OS. Comment installer les commandes spawn, send et interact ?

    Répondre

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.