当前位置:首页 > linux > 正文内容

linux SSH登录时自动邮件提醒

admin6年前 (2018-03-23)linux4673

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值改为你的邮箱。最后为该脚本文件添加执行权限:

chmod +x /etc/ssh/login-notifications.sh

用这种方式的好处是什么呢?

或者说比你通过修改Shell的Profile文件(如bashrc、zshrc等等)来做邮件提醒有什么好处?

第一,免去多种Shell共存时,你都要去修改相应Shell配置文件。(如果你只用Bash Shell,那还好)

第二,免去每新增一个Shell窗口,便邮件提醒你一次。(有时开很多shell窗口来处理事物时,过多邮件提醒,很烦,也很傻)

第三,如果对方登录你的VPS,并不打开SSH窗口,便不会提醒的毛病。(比如我登录VPS,只是想SFTP而非SSH,这种方法也会邮件提醒,而通过修改Shell配置文件的则不会提醒,因为这时还没触发启动Shell)

第四,钩子直接在OpenSSH上,省去各种可能的意外。



扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:http://www.cqroom.cn/post/57.html

“linux SSH登录时自动邮件提醒” 的相关文章

Linux下python2.7安装pip

首先下载并安装setuptools: wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py sudo python ez_setup.py --insecure 再到python官网下载pip安装包,...

centos 7 更改网络设置

centos 7 更改网络设置

使用交互式界面来配置网络。在终端中使用命令: $nmtui...

结合宝塔linux面板 centos6 7一键zabbix安装脚本!

结合宝塔linux面板 centos6 7一键zabbix安装脚本!

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。铁网维就不做过多的介绍,详情可以百度了解! 本次铁网维结合宝塔linux面板的环境来安装zabbix3.0.1 由于安装步骤比较多我已经写成脚本省去90%的配置...

centos7 安装zabbix客户端并监控

centos7 安装zabbix客户端并监控

 在上面博客中我们已经安装了zabbix的server端,如果我们需要对某台机器进行监控,还需要在被监控的机器上面安装客户端,这样才能进行监控,下面就给大家介绍一下agent端的安装教程   第一、导入源   sudo rpm -ivh http://rep...

Centos7 修改SSH 端口

修改/etc/ssh/sshd_config vi /etc/ssh/sshd_config #Port 22 //这行去掉#号,防止配置不好以后不能远程登录,还得去机房修改,等修改以后的端口能使用以后在注释掉 Port 33378 //下面添加这一行 修改firewall配...

linux格式化挂载硬盘

linux格式化挂载硬盘

挂载硬盘: 提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用 第一步:列出所有磁盘 命令:ll /dev/disk/by-path 提示:如果无法确认数据盘设备名称,请使用df命令来确认系统盘的名称,从而排除挂错盘的情况...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。