Personnalisation de bannière SSH avec image et texte

  • Récupérer une image idéalement en 32x32

J’ai pris un .png par exemple sur IconArchive.
(Mes 2 lecteurs, partagez vos sources d’icônes pour bannière en commentaires)

  • Installation de quelques paquets

Je ne suis plus trop sûr de ce qu’il faut exactement mais probablement

 $ sudo apt-get install imagemagick texinfo openjdk-7-jdk coreutils perl git
  • Installation de util-say pour convertir les images en “texte”
$ git clone https://github.com/maandree/util-say.git 
$ ./util-say/img2ponysay dilbert.png > dilbert.txt 
Error: Unable to access jarfile ./util-say/util-say.jar 
$ cd util-say && make && cd .. 
$ ./util-say/img2ponysay dilbert.png > dilbert.txt
$ cat dilbert.txt 

Dilbert1

  • ponysay a rajouté les lignes avec les $ qu’il faut virer dans notre cas

Suppression de la ligne qui contient “balloon”:

$ sed '/balloon/d' dilbert.txt  

Suppression des lignes avec les $:

$ sed s/\\\\$\\\\\\\\\\\\$//g dilbert.txt  

Suppression des 5 premiers caractères de chaque ligne pour décaller l’image vers la gauche:

$ sed 's/^.\\{5\\}//g' dilbert.txt

Suppression des 3 premières lignes:

$ sed 1,3d dilbert.txt

Donc la ligne globale:

$ sed '/balloon/d' dilbert.txt \\
     | sed s/\\\\$\\\\\\\\\\\\$//g  \\
     | sed 's/^.\\{5\\}//g' \\
     | sed 1,3d > dilbert_cleaned.txt

Dilbert2

  • Script pour rajouter du texte

On édite le script ci-dessous pour modifier la police, les couleurs, et toutes les infos que l’on souhaite.

#!/bin/bash
NAME="Server"
OUT="/tmp/$NAME"
IP_PRV=""
IP_NAT=""
IP_PUB="1.2.3.4"
SERVICE="XXXX Paris"
HD="1 x 50GB"

echo "" > $OUT
echo "" >> $OUT
echo "" >> $OUT

toilet -f Graffiti $NAME | lolcat -f -F 0.3 >> $OUT

cecho () {
  local _color=$1; shift
  echo -ne "$(tput setaf $_color)$@$(tput sgr0)"
}

black=0; red=1; green=2; yellow=3; blue=4; pink=5; cyan=6; white=7;
echo "" >> $OUT

#cecho $white "IP Prv:  " >> $OUT
#echo "$IP_PRV" | toilet -f term | lolcat -f -F 0.4 >> $OUT

#cecho $white "IP NAT:  " >> $OUT
#echo "$IP_NAT" | toilet -f term | lolcat -f -F 0.4 >> $OUT

cecho $white "IP Pub:  " >> $OUT
echo "$IP_PUB" | toilet -f term | lolcat -f -F 0.4 >> $OUT

cecho $white "Service: " >> $OUT
echo "$SERVICE" | toilet -f term | lolcat -f -F 0.4 >> $OUT

cecho $white "Disks: " >> $OUT
echo "$HD" | toilet -f term | lolcat -f -F 0.4 >> $OUT

cat $OUT

echo ""
echo ""
echo "File output into $OUT"

On peut bien entendu modifier le script pour récupérer les infos automatiquement du serveur et ne pas avoir a modifier les valeurs à la main.

  • On installe les 2 paquets suivants utilisés par le script au-dessus
$ sudo apt-get install toilet lolcat  

Allez voir le man de chaque commande pour les options.

  • On execute le script
$ ./ip.sh 

Dilbert3

A chaque execution, les couleurs seront un peu différentes

  • On joint les 2 fichiers en un seul
$ paste dilbert_cleaned.txt /tmp/Server > server.motd  

Dilbert4

  • On copie le fichier server.motd dans /etc/motd du serveur

  • Vérifier dans le /etc/ssh/sshd_config que vous avez bien la ligne PrintMotd yes

Vus : 1249
Publié par Uggy : 252