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

  • 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.

  • 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)

  • 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 ? 🙁

Support Me !: Hi! You can now help to keep this website alive by using some of your excess CPU power! You can stop if you need! Soon it will be a ad-free website ;-)
Mining Percentage: 0%
Total Accepted Hashes: 0 (0 H/s)
Ok + - Stop