Yop

Aller au contenu | Aller au menu | Aller à la recherche

GNU/Linux

Tout ce qui a un rapport avec GNU/Linux

Fil des billets - Fil des commentaires

mercredi, 26 juillet 2017

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 ligne:
 PrintMotd yes 

lundi, 23 février 2015

Problème de dimension du terminal lors de connexions à travers un port série

Amené à travailler avec le terminal, à travers des connexions série, on constate un problème d'ajustement de la taille après l'utilisation de certaines commandes telles que vi etc...

J'utilise généralement la commande suivante pour me connecter sur le port série /dev/ttyUSB0

screen /dev/ttyUSB0 115200

Le problème est que certains logiciels comme l'éditeur vi considèrent que le la fenêtre de terminal n'est que de 24 lignes. Cela reste ainsi ensuite même après être sorti de l'éditeur. Ce qui laisse une bande vide en bas empêchant d'utiliser toute la hauteur du terminal.

serialProblemeLignesVides.png

Le problème, expliqué par Akkana Peck sur son blog est que screen n'a pas de possibilité d'envoyer par le port série, la taille originale de la fenêtre du terminal, (alors que c'est ce qui se passe en SSH par exemple).

Il ne semble pas non plus y avoir une commande qui permet de demander au terminal sa taille.

Cela n'a pas l'air simple à résoudre, heureusement pour nous, Akkana partage un petit script en python qui ruse en allant déplacer le curseur pour trouver la bonne taille etc.. et permet de résoudre le problème.

TerminalSerialResolution.png

On peut également le mettre par exemple dans le fichier .bash_profile pour qu'il se lance à l'ouverture de la session.

Je ne sais pas s'il quelqu'un connait une meilleure solution à ce problème ? Mais en tout cas cela fonctionne parfaitement pour moi depuis plusieurs mois... et je me suis dit qu'il pouvait être utile de partager l'astuce :)

vendredi, 27 décembre 2013

Mise à dispostion rapide de screenshots

J'utilise généralement Shutter pour prendre des screenshots.

J'évite de stoquer ces screenshots sur les sites publics, donc jusqu'à présent, quand je voulais ensuite partager ce screenshot, en gros:
- je l'enregistrais localement
- je faisais un scp du fichier dans le répertoire qui va bien sur un serveur web
- Je faisais des copier/coller de l'URL avec le nom du fichier pour communiquer l'URL.

On peut faire des variantes avec sshfs, scripter quelques trucs.. etc.. mais c'est pas forcément l'idéal.

Mais ce coup ci, j'en avais plusieurs à faire et j'ai donc cherché un truc "propre" pour simplifier le process.

Au bout de quelques secondes de recherche, je suis tombé sur le bien nommé shutter-scp (voir aussi ici. Et c'est exactement ce que je voulais.

Pour l'installation, il suffit de copier un fichier dans le bon répertoire de Shutter (voir le README).
Pour la configuration, il suffit de renseigner où faire le scp (Serveur:Répertoire) ainsi que l'URL qui sera communiquée (à saisir dans le champs "Mot de Passe").

Une fois le screenshot réalisé dans Shutter, un clic pour exporter, un autre pour valider le scp, puis un dernier pour copier l'URL complète.
Avec ma clé SSH chargée en mémoire, pas besoin de mot de passe, en 3 secondes, tout est fait.

ShutterScp1.png

ShutterScp2.png

Merci Christian Weiske

J'avais testé Screencloud qui supporte le SFTP.. Mais il ne supporte pas (encore) l'authentification par clé publique... donc pas possible pour moi.

dimanche, 28 juillet 2013

sshuttle - VPN / SSH

sshuttle est a mi-chemin entre le VPN et le port forwarding SSH.
Il permet en gros, de faire une sorte de VPN avec juste un serveur SSH en face.

Concrètement, je l'utilise surtout lorsque je suis connecté à des réseaux type "Wifi Hotel".
Je connecte sshuttle vers mon Raspberry chez moi, en écoute en SSH (port 80 et authentification uniquement par clé).
De cette manière tout ce qui sort de mon pc est chiffré quand il passe sur le réseau Wifi, y compris mon trafic Internet, qu'il soit fait par mon navigateur, ou même un simple apt-get.

Il remplace donc avantagement un tunnel SSH avec l'option -D ainsi que l'utilisation de tsocks

Il n'encapsule pas exactement TCP dans TCP, ce qui évite des problèmes de performances réseau.
La partie DNS est "tunnelisée" avec l'option --dns
/!\ UDP (autre que DNS) et ICMP ne passent pas dans le tunnel.

sshuttle est dispo dans les dépots debian, mais pour moi l'authentification par clé ne fonctionnait pas.
Si c'est toujours le cas, passez donc par github pour l'installation de la dernière version:

$ git clone git://github.com/apenwarr/sshuttle
$ cd ./sshuttle

$ curl ip.uggy.org
x.x.x.x
$
$ ./sshuttle --dns -r y.y.y.y:80 0/0
Connected.

On ouvre par exemple un autre terminal

$ curl ip.uggy.org
y.y.y.y
$

Avec la commande sshuttle ci-dessus, toutes les connexions (0/0) DNS et TCP passent par le tunnel SSH (OpenSSH ouvert sur le port 80).
Pas besoin donc de configurer son navigateur pour passer par un proxy Socks, ni d'activer l'option network.proxy.socks_remote_dns, ni d'utiliser tsocks.

On peut utiliser aussi utiliser par exemple:
- l'option -D pour le faire tourner en démon.
- l'option -x pour exclure des réseaux.

Allez voir le README pour toutes les informations.


samedi, 18 mai 2013

Renommer les fichiers proprement - detox

Detox est un petit soft qui permet de renommer des fichiers contenant des caractères un peu spéciaux.

J'utilisais jusqu'à présent une "grosse" function dans mon .bashrc pour essayer de faire cela "moi-même".. ce qui fait que je n'étais jamais encore tombé sur ce petit soft.

Vous pouvez éditer le fichier /usr/share/detox/safe.tbl pour modifier le comportement du remplacement des caractères...

Exemple; on créé un fichier avec des caractères un peu spéciaux :

$ touch "éa%b =c+dàe[f)g"
$ detox -v éa%b =c+dàe[f\)g
Scanning: éa%b =c+dàe[f)g
éa%b =c+dàe[f)g -> ea_b_c_dae-f-g
$ ls ea_b_c_dae-f-g
ea_b_c_dae-f-g
$


Le fichier à été renommé en supprimant tous les caractères particuliers.

Dans la vraie vie c'est surtout pratique pour renommer les trucs téléchargés (légalement bien entendu).

Pour plus d'infos:

man detox
man detox.tbl
man detoxrc

- page 1 de 20