1.安装 curl

sudo apt update
sudo apt install curl

2.创建 SSH 登录成功通知脚本

创建:

sudo mkdir /usr/local/sbin/script
sudo vim /usr/local/sbin/script/gotify-ssh-login.sh

写入:

#!/bin/bash

# 只处理 SSH session 建立
[ "$PAM_TYPE" = "open_session" ] || exit 0

GOTIFY_URL="https://gotify.example.com"
GOTIFY_TOKEN="AbCdEf123456..."

HOSTNAME=$(hostname)
USER_NAME="${PAM_USER:-unknown}"
REMOTE_IP="${PAM_RHOST:-unknown}"
TIME=$(date '+%Y-%m-%d %H:%M:%S %Z')

MESSAGE="服务器:${HOSTNAME}
用户:${USER_NAME}
IP:${REMOTE_IP}
时间:${TIME}"

curl -fsS \
    --max-time 5 \
    -H "X-Gotify-Key: ${GOTIFY_TOKEN}" \
    -F "title=🔐 SSH Login" \
    -F "message=${MESSAGE}" \
    -F "priority=5" \
    "${GOTIFY_URL}/message" \
    >/dev/null 2>&1

exit 0

注意修改:

GOTIFY_URL
GOTIFY_TOKEN

修改权限:

sudo chmod 700 /usr/local/sbin/script/gotify-ssh-login.sh

3.让 SSH 登录时执行脚本

编辑:

sudo vim /etc/pam.d/sshd

在最后添加:

session optional pam_exec.so seteuid /usr/local/sbin/script/gotify-ssh-login.sh

4.测试 SSH 登录通知

重新打开一个终端:

ssh xxx@你的服务器IP -p 22

成功登录后,Gotify 应该收到:

🔐 SSH Login

服务器:abc
用户:xxx
IP:1.2.3.4
时间:2026-08-17 02:35:21 CST