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:
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