Personnaliser votre message de connexion SSH avec motd

Aujourd’hui un article de personnalisation lors de votre connexion SSH. Un peu d’esthétique ne fera pas de mal 🙂

motd-2

Lorsque vous vous connectez au Raspberry en SSH ou bien en ouvrant un terminal sous X vous avez la possibilité d’afficher un message particulier dont le contenu se situe dans le fichier /etc/motd.

Nous allons modifier ce message pour obtenir le message de l’image ci-dessus.

  1. Créer un script (chez moi /root/update_motd.sh) avec le contenu de ce fichier (le fichier a une extension .doc mais c’est .txt à cause de l’hébergement wordpress.com).

    Le script va écrire dans le fichier /etc/motd. Par contre vous pouvez avoir à ajouter des espaces en début de ligne pour aligner tout ça.
    Personnaliser votre message de connexion SSH avec motd

    Personnaliser votre message de connexion SSH avec motd - Capture d’écran à cause des qui ne passent pas sur ce blog …

  2. Mettre en place une actualisation régulière du fichier /etc/motd via un job dans la crontab. Lancez la commande crontab -e et copiez la ligne suivante en fin de fichier :
    */10 * * * * /root/update_motd.sh

    Le script va s’exécuter toutes les 10 minutes

Et voilà 🙂

Sources :

Vous aimerez aussi...

  • waraxe

    Pour ma part, je connaissais déjà et le mien est très ressemblant avec la même framboise en ASCII art.

    Avant je ne savais pas où mettre mon message d’accueil. Au départ je l’avais mis dans le fichier /etc/init.d/motd mais celui-ci ne s’exécutant qu’au démarrage du Raspberry ou manuellement, les données affichées n’étaient jamais à jour.

    Maintenant je l’ai mis dans le /etc/profile donc à chaque ouverture de shell Bash il me génère les informations. Je n’ai personnellement pas trop de calculs à faire mais suivant la complexité du script, ma méthode peut faire perdre quelques dixièmes de secondes au démarrage du shell surtout pour une machine de faible puissance comme le RPi.

    Avec la tienne, les données sont générées à l’avance et donc sont juste à être affichées. Mais elles sont générées même lorsque personne n’utilise la machine.

    Même si le « préjudice » est très minime, c’est une affaire de choix.

    • s-man38

      Bonjour waraxe, qu’elle ligne as tu ajouté à etc/profile pour l’exécution du script ?

      Merci

  • starcleff

    Chez moi ça marche pas 🙁

    Il aime pas la personnnalisation des couleurs du coup ça me donne ça:

    ————————-

    Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l

    33[0;32m

    .~~. .~~. 33[0;37mMonday, 29 April 2013, 18:0533[0;32m

    ‘. ‘ ‘ / .’ 33[0;37mLinux 3.6.11+ armv6l GNU/Linux33[0;31m

    .~ .~~~..~. 33[0;37m33[0;31m

    : .~.’~’.~. : 33[0;37mUptime………….: [0;31m

    ~ ( ) ( ) ~ 33[0;37mMemory………….: 124MB (Free) / 438MB (Total)33[0;31m

    ( : ‘~’.~.’~’ : ) 33[0;37mRunning Processes..: 11633[0;31m

    ~ .~ ( ) ~. ~ 33[0;37m33[0;31m

    ( : ‘~’ : ) 33[0;37mIP Addresses…….: 192.168.1.39 / 79.159.70.6533[0;31m

    ‘~ .~~~. ~’ 33[0;37mTemperature……..: 46.5’C33[0;31m

    ‘~’ 33[0;37m

    33[0;32m

    .~~. .~~. 33[0;37mMonday, 29 April 2013, 18:0533[0;32m

    ‘. ‘ ‘ / .’ 33[0;37mLinux 3.6.11+ armv6l GNU/Linux33[0;31m

    .~ .~~~..~. 33[0;37m33[0;31m

    : .~.’~’.~. : 33[0;37mUptime………….: [0;31m

    ~ ( ) ( ) ~ 33[0;37mMemory………….: 124MB (Free) / 438MB (Total)33[0;31m

    ( : ‘~’.~.’~’ : ) 33[0;37mRunning Processes..: 11633[0;31m

    ~ .~ ( ) ~. ~ 33[0;37m33[0;31m

    ( : ‘~’ : ) 33[0;37mIP Addresses…….: 192.168.1.39 / 79.159.70.6533[0;31m

    ‘~ .~~~. ~’ 33[0;37mTemperature……..: 46.5’C33[0;31m

    ‘~’ 33[0;37m

    —————————

    (et non je l’ai pas mis 2 fois)

    Si qqun a une idée :p

  • waraxe

    On dirait qu’il manque les caractères « » avant chaque code couleur.

    Par exemple au lieu de « 33[0;37m » ça devrait être « 33[0;37m ».

    Pour que le code soit un petit peu plus lisible, c’est mieux d’établir les couleurs dans des variables au départ et ensuite d’appeler les variables par leur nom.

    Pour le vert ça donnerait :

    VERT= »33[0;32m »

    Et on appel la variable VERT avec « $VERT ».

    Au passsage, un petit lien pour comprendre les codes couleur : http://wiki.mandriva.com/fr/Utilisateur:Yves_Bourguet/ANSI

  • waraxe

    Ah mince. Chris on dirait que ton blog n’aime pas les caractères antislash. À chaque fois le caractère qui suit un antislash est échappé (il disparaît).

    Donc dans mon commentaire précédent je disais qu’il manque les caractères « [antislash][zéro] » (un antislash suivit d’un zéro) au début de chaque code couleur.

  • starcleff

    Okey, merci je vais essayer ça.

  • J’ai mis à jour l’article suite aux remarques sur les couleurs et les caractères. Tout se trouve dans un fichier en pièce jointe.

  • starcleff

    J’ai rééssayé avec le fichier joint ça marche toujours pas il met:

    ———————-

    Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l

    33[0;32m

    .~~. .~~. 33[0;37mTuesday, 30 April 2013, 18:3333[0;32m

    ‘. ‘ ‘ / .’ 33[0;37mLinux 3.6.11+ armv6l GNU/Linux33[0;31m

    .~ .~~~..~. 33[0;37m33[0;31m

    : .~.’~’.~. : 33[0;37mUptime………….: 0 days, 00h 12m 11s 33[0;31m

    ~ ( ) ( ) ~ 33[0;37mMemory………….: 161MB (Free) / 438MB (Total)33[0;31m

    ( : ‘~’.~.’~’ : ) 33[0;37mRunning Processes..: 9833[0;31m

    ~ .~ ( ) ~. ~ 33[0;37m33[0;31m

    ( : ‘~’ : ) 33[0;37mIP Addresses…….: 192.168.1.39 / 79.159.70.6533[0;31m

    ‘~ .~~~. ~’ 33[0;37mTemperature……..: 45.5’C33[0;31m

    ‘~’ 33[0;37m

    33[0;32m

    .~~. .~~. 33[0;37mTuesday, 30 April 2013, 18:3333[0;32m

    ‘. ‘ ‘ / .’ 33[0;37mLinux 3.6.11+ armv6l GNU/Linux33[0;31m

    .~ .~~~..~. 33[0;37m33[0;31m

    : .~.’~’.~. : 33[0;37mUptime………….: 0 days, 00h 12m 11s 33[0;31m

    ~ ( ) ( ) ~ 33[0;37mMemory………….: 161MB (Free) / 438MB (Total)33[0;31m

    ( : ‘~’.~.’~’ : ) 33[0;37mRunning Processes..: 9833[0;31m

    ~ .~ ( ) ~. ~ 33[0;37m33[0;31m

    ( : ‘~’ : ) 33[0;37mIP Addresses…….: 192.168.1.39 / 79.159.70.6533[0;31m

    ‘~ .~~~. ~’ 33[0;37mTemperature……..: 45.5’C33[0;31m

    ‘~’ 33[0;37m

    ————————-

    (avant chaque 33 j’ai bien mis [antislash][zero]

    • Il y a bien qu’une ligne dans la crontab ?

      • starcleff

        Je n’ai pas encore lancé la crontab je test voir si ça marche et après je programme l’exécution automatique.

        • Le double contenu c’est le script qui le génère ? Est-ce que lancé seul sans redirection dans /etc/motd ça fonctionne ?

  • Raph

    Ou sinon on creer un fichier /etc/ssh/sshrc (s’il n’existe pas déjà) ou ~/.ssh/rc et on met dedans par exemple: sh /home/pi/.update_motd.sh (ou directement le script)

    man sshd:

    […]

    LOGIN PROCESS

    8. If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists,

    runs it; otherwise runs xauth. The « rc » files are given the

    X11 authentication protocol and cookie in standard input. See

    SSHRC, below.

    […]

    Ce qui permet de mettre à jour avant que le client se connecte plutot que toutes les 10min.

    • Effectivement, ca semble bien plus efficace ! 🙂
      Merci pour partager ces précisions

    • Bencici

      J’ai le droit à ça moi :S :

      « Last login: Wed May 1 19:57:04 2013 from 192.168.0.11

      Usage: grep [OPTION]… MOTIF [FICHIER]…

      Try ‘grep -help’ for more information.

      /etc/ssh/sshrc: 2: /etc/ssh/sshrc: MemFree: not found

      /etc/ssh/sshrc: 4: /etc/ssh/sshrc: arithmetic expression: expecting primary: « /1024 » «

      • Salut,
        Quelle distribution utilises tu ? Que se passe-t-il si tu fais un cat /etc/motd ?
        Pour chaque commande c’est possible qu’il faille mettre le path complet (/usr/bin/grep au lieu de grep par exemple)

        • Raspbian dernière en date.

          J’ai le droit au MOTD.

          J’ai tout viré, je vais tenter la méthode originale.

        • J’ai finalement utilisé cette méthode http://www.raspberrypi.org/phpBB3/viewtopic.php?t=23440 avec le MOTD donné + petite modifs maison http://pastebin.com/yJwQL6WK

          Pour la météo, il suffit de changer la ville à la fin de l’adresse.

  • waraxe

    Oui c’est un peu ce que j’ai dit dans mon premier commentaire.

    Mais je préfère le mettre dans /etc/profile, car dans le sshrc cela ne concerne que les connexions ssh (en tout cas si c’est quelqu’un qui utilise le Pi directement sans passer par ssh).

    • Raph

      Ha ouai exact j’avais pas regarder les coms.

  • Polo0000

    Bon et bien moi j’ai un problème, j’ai tout essayé qu’importe ou je place les commandes à exécuter : ~/.ssh/rc ; /etc/ssh/sshrc ; /etc/profile ; ~/.bash_profile

    Le message se met bien à jour mais après que je me sois connecté, donc quand je me connecte je n’ai que le message de ma connexion précédente. Si je me connecte qu’une seul fois par jour j’ai le message de la veille à chaque fois, pas terrible…

    Une idée?

    • Je me demande si MOTD n’est pas exécuté avant ces fichiers (profile et .bash_profile) c’est certain. Donc c’est normal qu’il affiche le message puis qu’ensuite il le mette à jour.
      Tu ne veux pas essayé par la crontab ?

      • Polo0000

        Oui je fonctionne comme ça en attendant de trouver une autre alternative. Moi j’aime bien quand ça fonctionne comme je le veux!

        • Regarde ce lien tu as la séquence complète d’exécution lors du boot. Tu vois que motd est affiché avant les fichiers de profile

  • Polo0000

    heu… ton lien ne marche pas!

  • torriep

    Hello,

    Merci pour le tuto !

    Mais j’ai aucune couleur : que ce soit côté putty ou client SSH sur Android :/

    Une idée, svp ? Merci. À bientôt. Bonne continuation.

  • torriep

    Bonjour,

    Toujours personne pour m’aider ? 🙁

Handpicked links

Mise en cache objet de 2223/2361 objets utilisant disk Mise en cache utilisant disk: enhanced Mise en cache de base de données 43/52 requêtes dans 0.033 secondes utilisant disk Served from: pihomeserver.fr @ 2017-10-24 13:14:58 by W3 Total Cache -->