Se connecter automatiquement avec mot de passe et exécution d'une commande¶
Ce que l'on va faire ici¶
Lorsque l'on se connecte au Raspberry Pi, typiquement, on fait une connexion ssh suivie du lancement du serveur VNC. Successivement, il faut :
- saisir la commande ssh
- saisir son mot de passe
- saisir la commande de lancement serveur vnc
Puis ensuite, se connecter par client vnc.
L'idée ici est d'automatiser la connexion au serveur par mot de passe et exécution d'une commande.
Exécuter une commande automatiquement après une connexion ssh¶
Pour exécuter une commande automatiquement après une connexion ssh, faire :
ssh -t user@ip.du.server.ssh 'commande1; commande2'
Par exemple :
ssh -t pi@192.168.0.69 'x11vnc'
Voir :
Et en plus : se connecter sans avoir à saisir son mot de passe¶
Pour ne pas avoir à saisir son mot de passe lors d'une connexion SSH, une première possibilité est d'utiliser une clé publique que l'on envoie au serveur SSH. C'est la solution la plus sûre, mais ce n'est pas ce que nous voulons faire ici.
L'idée est de maintenir une connexion par mot de passe simple, mais sans avoir à le saisir une fois la commande de connexion lancée. La solution passe par sshpass que l'on commence par installer :
sudo apt-get install sshpass
Ensuite, il suffit de faire :
sshpass -p motdepasse ssh user@ip.du.server.ssh
Par exemple :
sshpass -p raspberry ssh pi@192.168.0.69
Le mot de passe n'est pas demandé lors de la connexion.
Voir :
Par contre, ce que l'on veut, en plus, c'est l'exécution d'une commande : il suffit dès lors de combiner les 2 commandes, ce qui donne :
sshpass -p motdepasse ssh -t user@ip.du.serveur.ssh 'commande1; commande2'
Par exemple pour se connecter et lancer le serveur VNC :
sshpass -p raspberry ssh -t pi@192.168.0.69 'x11vnc'
That is it !!
Le tout dans un petit script¶
Une fois qu'on en est là, il est facile de faire un petit script bash et y placer cette commande :
#!/bin/bash
sshpass -p raspberry ssh -t pi@192.168.0.69 'x11vnc'
Encore plus fort : lancer automatiquement le client vnc dans la foulée !
#!/bin/bash
sshpass -p raspberry ssh -t pi@192.168.0.69 'x11vnc' | (sleep 10 && xtightvncviewer 192.168.0.69)
Une fois fait, il suffit d'enregistrer çà dans un script, le rendre exécutable et le lancer depuis un terminal pour se connecter au Pi !