Hey! Vielleicht suchst du auch nach dem Weg bei einem Login via SSH dir eine Benachrichtigung senden zu lassen? Ich hab’ da mal ein wenig dran gebastelt und beschreibe das jetzt hier.

Meine Nachrichten sehen folgendermaßen aus:

Screenshot von einer ntfy-Nachricht. Als Überschrift steht dort “Login into SERVER_NAME”. Als Nachricht steht dort “Login at USER@SERVER_NAME from CLIENT_IP_ADDRESS”.

Hier wird dann (logischerweise) alles von selbst eingesetzt. Der curl-Befehl sieht dann am Ende folgendermaßen aus:

curl -H "Authorization: Bearer ACCESS_TOKEN" -H "Title: Login into $(hostname)" -H "Tags: warning,unlock" -H "Priority: 4" --no-progress-meter -d "Login at $USER@$(hostname) from $(echo $SSH_CLIENT|awk '{print $1}')" YOUR_NTFY_SERVER+CHANNEL > /dev/null

Da wo jetzt noch ACCESS_TOKEN steht musst du deinen ntfy-Access-Token hinein schreiben und da wo YOUR_NTFY_SERVER+CHANNEL steht muss die URL zu dem Channel hin. Du kannst das auch ohne Authentikation machen, ich nutze jedoch meinen eigenen ntfy-Server dafür und brauche daher Authentikation. Happy testing :)!

Jetzt zum wichtigsten Teil: Wie lasse ich das denn beim SSH-Login auch ausführen? Das ist pro Shell ein wenig anders (bash vs. fish zum Beispiel). Da ich gerade diese beiden Shells nutze, zeige ich euch einmal die Befehle und wo die dann hin müssen.

Konfiguration in Bash

Folgendes muss in /etc/profile:

if [ -n "$SSH_CLIENT" ]; then

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Title: Login into $(hostname)" -H "Tags: warning,unlock" -H "Priority: 4" --no-progress-meter -d "Login at $USER@$(hostname) from $(echo $SSH_CLIENT|awk '{print $1}')" YOUR_NTFY_SERVER+CHANNEL > /dev/null

fi

Konfiguration in Fish

Folgendes muss in ~/.config/fish/config.fish für jeden User einzeln:

if [ -n "$SSH_CLIENT" ];

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Title: Login into $(hostname)" -H "Tags: warning,unlock" -H "Priority: 4" --no-progress-meter -d "Login at $USER@$(hostname) from $(echo $SSH_CLIENT|awk '{print $1}')" YOUR_NTFY_SERVER+CHANNEL > /dev/null

end