SSH est le protocole sécurisé d’accès distant à des stations ou des serveurs sous Linux ou Unix. A chaque connexion vers une machine distante, il faut saisir sa passphrase pour s’authentifier. Dans le cas ou l’on veut enchainer une suite d’opération sur une liste de machine, cette saisie devient vite fatigante.

Pour éviter cet inconvénient, certains génèrent des clefs SSH sans passphrase ce qui est en contradiction avec avec l’objectif premier de SSH : sécuriser l’accès. En utilisant ssh-agent,  il est possible de saisir qu’une seule fois et d’enchainer une opération sur plusieurs stations.

Pour les opérations répétitives, je fais généralement un script qui travaillera pour moi. Pour faciliter l’identification, j’utilise la fonction suivante qui permet de demander la passphrase à l’utilisateur et de la mémoriser pour le shell courant :

    ouvre_ssh()
    {
    echo "fonction ouvre_ssh"
    echo "Veuillez saisir la Passphrase du compte $USER"
    eval `ssh-agent -s`
    ssh-add $HOME/.ssh/id_rsa
    } 

Il suffit d’appeller cette fonction en début de script, puis tout fonctionne à merveille !

Elle a été testée et utilisée sous Linux et Solaris 2.7.