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
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
- 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
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
-
On copie le fichier
server.motd
dans/etc/motd
du serveur -
Vérifier dans le
/etc/ssh/sshd_config
que vous avez bien la lignePrintMotd yes