Email notification for SSH logins

On servers I maintain I usually have a script running that sends an email whenever someone logs in via SSH. It allows me to keep track on whether something fishy is going on in a very easy way.

It’s not bulletproof but at least provides me with a certain level of safety that everything is all right.

The other day I had to reinstall a server after some time and of course I had to – again – search for how to set that email script up.

So here’s the instructions:

Create the executable that will send the email

First we need a script that will send the email. Take this as a template:

Store this file wherever you like, I put it into /etc/pam_scripts/login_email_notification.sh but it is really irrelevant where it is.

The variables PAM_USER, PAM_RHOST and PAM_TYPE will be replaced by the PAM system. A tad more on that shortly.

Next we need to make this script executable by running something along the line of sudo chmod 755 /etc/pam_scripts/login_email_notification.sh

Execute the script on SSH-Login

To execute this script now on login I added it to the servers PAM-scripts. The Pluggable Authentication Modules allow for each service to have files executed. SO for SSH there usually is a file /etc/pam.d/sshd that contains a log of information.

The for me interesting part is that I can add this at the end:

Save this file and on the next login via SSH on the machine you should receive an email.

That is: When your email system on the machine is set up properly…

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.