Skip to content

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 !