Posts tagged starttext

SSH – Dynamisches MOTD

Die MOTD ist eine gute Möglichkeit um Nachrichten an die Benutzer eine System zu übermitteln, aber es hat auch seine Grenzen.Wenn ich mich auf meinem System einlogge will ich sehen wie es ihm so geht. Diese dynamische Informationen werden bei jedem Login generiert.
Hierfür habe ich mir ein kleines Shell Script gebastelt und verwende es statt der motd.

Als erstes stellen wir uns mal ein Shell Script

sudo nano /usr/local/bin/motddyn

mit dem Inhalt.

#!/bin/bash
let upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
let secs=$((${upSeconds}%60))
let mins=$((${upSeconds}/60%60))
let hours=$((${upSeconds}/3600%24))
let days=$((${upSeconds}/86400))
UPTIME=`printf "%d days, %02dh %02dm %02ds" "$days" "$hours" "$mins" "$secs"`

# get the load averages
read one five fifteen rest < /proc/loadavg

echo "$(tput setaf 2)
   .~~.   .~~.    `date +"%A, %e %B %Y, %R"`
  '. \ ' ' / .'   `uname -srmo`$(tput setaf 1)
   .~ .~~~..~.
  : .~.'~'.~. :   Uptime.......: ${UPTIME}
 ~ (   ) (   ) ~  Memory.......: `cat /proc/meminfo | grep MemFree | awk {'print $2'}`kB (Free) / `cat /proc/meminfo | grep MemTotal | awk {'print $2'}`kB (Total)
( : '~'.~.'~' : ) Load Averages: ${one}, ${five}, ${fifteen} (1, 5, 15 min)
 ~ .~ (   ) ~. ~  Processes....: `ps ax | wc -l | tr -d ' '`
  (  : '~' :  )   IP Addresses.: `/sbin/ifconfig eth0 | /bin/grep 'inet addr' | /usr/bin/cut -d ':' -f 2 | /usr/bin/cut -d ' ' -f 1` and external `wget -q -O - http://icanhazip.com/ | tail`
   '~ .~~~. ~'    Temperature..: `/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9"` °C
       '~'        SSH Logins...: `who -q | tail -n 1 | cut -d= -f2` user(s) (`who -q | head -n 1`) logged in.
                  Username.....: `whoami` from `who am i | awk '{ print substr($0, index($0,$5)) }' | sed 's/[()]//g'`
                  Last login...: `lastlog -u $USER | tail -n 1 | tr -s ' ' | cut -d ' ' -f 4-9` from `lastlog -u $USER | tail -n 1 | tr -s ' ' | cut -d ' ' -f 3`
                  Disk usage...: `/usr/bin/du -ms $HOME | /usr/bin/cut -f 1` MB in `/usr/bin/du -ms $HOME | /usr/bin/cut -f 2`
$(tput sgr0)"

Anschließend nano mit dem Tastenkürzel “STRG + X” für Windows oder “CTRL + X” für Mac beenden und ein “y” für yes, damit das bisherige Skript überschrieben werden kann.
Nun machen wir es noch ausführbar:

chmod +x /usr/local/bin/motddyn

Starten wir das Skript mal und schauen uns an ob die Ausgabe stimmt.

/usr/local/bin/motddyn
   .~~.   .~~.    Tuesday, 27 August 2013, 20:28
  '. \ ' ' / .'   Linux 3.6.11+ armv6l GNU/Linux
   .~ .~~~..~.
  : .~.'~'.~. :   Uptime.......: 24 days, 20h 07m 06s
 ~ (   ) (   ) ~  Memory.......: 37312kB (Free) / 448776kB (Total)
( : '~'.~.'~' : ) Load Averages: 0.19, 0.11, 0.08 (1, 5, 15 min)
 ~ .~ (   ) ~. ~  Processes....: 89
  (  : '~' :  )   IP Addresses.: xxx.xxx.xxx.xxx and external xxx.xxx.xxx.xxx
   '~ .~~~. ~'    Temperature..: 50.8 °C
       '~'        SSH Logins...: 2 user(s) (user pi) logged in.
                  Username.....: pi from xxx.xxx.xxx.xxx
                  Last login...: Tue Aug 27 14:28:26 +0200 2013 from xxx.xxx.xxx.xxx
                  Disk usage...: 26 MB in /home/pi

So weit so gut. Sieht doch schon mal ganz gut aus. Nun bauen wir es noch so ein, damit es bei jedem login automatisch gestartet wird.
Hierfür muß die Datei /etc/profile bearbeitet werden.

sudo nano /etc/profile

An das Ende der Datei gehen und folgende Zeile einfügen.

/usr/local/bin/motddyn

Anschließend nano mit dem Tastenkürzel “STRG + X” für Windows oder “CTRL + X” für Mac beenden und ein “y” für yes, damit das bisherige Skript überschrieben werden kann.

Lasst die aktuelle Verbindung offen und öffnet eine neue SSH Session, loggt euch ein und schaut euch das Ergebnis an.

Wer den MOTD Teil unter /etc/motd nicht mehr benötigt, kann die Datei ja wieder sauber machen oder motd kompplett abschalten.
Hierfür die SSH config öffnen

sudo nano /etc/ssh/sshd_config

und den PrintMotd Teil suchen und mit einem no versehen:

PrintMotd no

Anschließend nano mit dem Tastenkürzel “STRG + X” für Windows oder “CTRL + X” für Mac beenden und ein “y” für yes, damit das bisherige Skript überschrieben werden kann.

Danach noch den SSH Server neu starten.

sudo /etc/init.d/ssh restart

Mit SSH neu verbinden und das Ergebnis bewundern.

 

Wer es einfacher möchte, kann das screenfetch verwenden.

SSH Starttext ändern

Ihr wollt den SSH Starttext ändern? Nichts einfacher als das. Hierzu gibt es zwei Möglichkeiten.

  1. issue.net: Zeigt einen Text beim Login noch vor der Passworteingabe an.
  2. motd : Zeigt einen Text nach dem erfolgreichen Login an.

issue.net – Banner vor der Passworteingabe

Loggt euch per SSH auf euren System ein und öffnet die Datei issue.net.

sudo nano /etc/issue.net

Fügt euren Text ein. Das kann wie folgt aussehen.

__        __   _                          
\ \      / /__| | ___ ___  _ __ ___   ___ 
 \ \ /\ / / _ \ |/ __/ _ \| '_ ` _ \ / _ \
  \ V  V /  __/ | (_| (_) | | | | | |  __/
   \_/\_/ \___|_|\___\___/|_| |_| |_|\___|

All connections are monitored and recorded.
Disconnect IMMEDIATELY if you are not an authorized user!

Anschließend nano mit dem Tastenkürzel “STRG + X” für Windows oder “CTRL + X” für Mac beenden und ein “y” für yes, damit die bisherige config überschrieben werden kann.

Dann die SSH config öffnen

sudo nano /etc/ssh/sshd_config

und den Banner Teil suchen, welcher immer etwas anders aussehen kann. Hier einige Beispiele:

#Banner /etc/issue.net
Banner /etc/issue.net
#Banner /some/path

Mit „#“ wird der Eintrag auskommentiert und somit vom SSH Server nicht verarbeitet. Die Zeile sollte wie folgt aussehen.

Banner /etc/issue.net

Anschließend nano mit dem Tastenkürzel “STRG + X” für Windows oder “CTRL + X” für Mac beenden und ein “y” für yes, damit die bisherige config überschrieben werden kann.
Danach noch den SSH Server neu starten.

sudo /etc/init.d/ssh restart

Die aktuelle Verbindung wird durch den restart nicht getrennt.
Lasst die aktuelle Verbindung offen und öffnet eine neue SSH Session und schaut euch das Ergebnis an.

motd – Banner nach dem erfolgreichem Login

Loggt euch per SSH auf euren System ein und öffnet die Datei motd.

sudo nano /etc/motd

Löscht was ihr nicht mehr haben wollt und fügt euren gewünschten Text oder ASCII-Bildchen ein. Anschließend nano mit dem Tastenkürzel “STRG + X” für Windows oder “CTRL + X” für Mac beenden und ein “y” für yes, damit die bisherige config überschrieben werden kann.

Lasst die aktuelle Verbindung offen und öffnet eine neue SSH Session, loggt euch ein und schaut euch das Ergebnis an.