linux SSH登录时自动邮件提醒
1.安装sendmail:yum install -y sendmail
2.安装mail:yum install -y mail
3.安装mutt:yum install -y mutt
首先,确认你为OpenSSH使用了PAM,检查“/etc/ssh/sshd_config”,看下“UsePAM”的值是不是定义为“yes”。
接下来,利用pam_exec给OpenSSH做个钩子注册动作,编辑“/etc/pam.d/sshd”,在末尾添加一行:
session optional pam_exec.so seteuid /etc/ssh/login-notifications.sh
然后,创建个“login-notifications.sh”脚本来处理邮件发送,通常我会在“/etc/ssh/”下创建,内容如下:
#!/bin/sh
if [ "$PAM_TYPE" != "close_session" ]; then
MAILTO='kn007@126.com'
HOSTNAME=$(hostname)
NOW=$(date)
echo "Someone from $PAM_RHOST using $PAM_USER logged into $HOSTNAME on $NOW." | mail -s 'SSH Login Notification' $MAILTO
fi
记得把MAILTO值改为你的邮箱。最后为该脚本文件添加执行权限:
用这种方式的好处是什么呢?
或者说比你通过修改Shell的Profile文件(如bashrc、zshrc等等)来做邮件提醒有什么好处?
第一,免去多种Shell共存时,你都要去修改相应Shell配置文件。(如果你只用Bash Shell,那还好)
第二,免去每新增一个Shell窗口,便邮件提醒你一次。(有时开很多shell窗口来处理事物时,过多邮件提醒,很烦,也很傻)
第三,如果对方登录你的VPS,并不打开SSH窗口,便不会提醒的毛病。(比如我登录VPS,只是想SFTP而非SSH,这种方法也会邮件提醒,而通过修改Shell配置文件的则不会提醒,因为这时还没触发启动Shell)
第四,钩子直接在OpenSSH上,省去各种可能的意外。
chmod +x /etc/ssh/login-notifications.sh
- 随机文章
- 热门文章
- 热评文章
- 树莓花生壳内网映射官方教程失败解决
- UDP穿透NAT的原理与实现(UDP“打洞”原理)
- C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)
- C#图片处理示例(裁剪,缩放,清晰度,水印)
- Linux下python2.7安装pip
- HTTP请求头详解
- 乐高EV3与单片机蓝牙通讯
- 锂电池充电的原理