使用 Telegram 接收 SSH 登陆提醒
手上的VPS一多,迫切需要一款提醒工具来保证一定程序上的安全
于是现在迫切的需要一个 SSH 的登陆提醒。
编辑 /etc/ssh/sshrc 放入以下代码:
#!/bin/sh
IP="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
HOSTNAME=$(hostname)
NOW=$(date +"%Y/%m/%d, %a %r")
CONTENT="Someone from http://ip-api.com/json/$IP logged into $HOSTNAME on $NOW."
RES=$(curl -X POST \
-F "chat_id=<chat_id>" \
-F "text=${CONTENT}" \
-o /dev/null --silent \
-w %{http_code} \
"https://api.telegram.org/bot<apikey>/sendMessage")
如果想要发送图片怎么办?
title="<Your title>"
RES=$(curl -X POST \
-F "chat_id=<Your chat id>" \
-F "caption=\"${title}\"" \
-F "photo=@/<path to 123.png>" \
"https://api.telegram.org/bot<Your bot token>/sendPhoto")
这样在每次登陆 SSH 后 Telegram Bot 都会发送一条通知给你。
写在最后
创建了 ~/.ssh/rc 的用户在登陆时只执行该文件,/etc/ssh/sshrc 会被忽略。
端口转发时会触发,但是开启 -N 选项后不会触发。
有关创建 Telegram Bot 以及如何获取 API Key 和 Chat ID 的教程可以自行百度也可以参考以下:
- @botfather 获取机器人的api key
- 将机器人添加到组中
转到组,单击组名称,单击添加成员,在搜索框中搜索您的机器人,如下所示:@my_bot,选择您的机器人并单击添加,并发送一条测试信息 转到以下网址:
https://api.telegram.org/bot{api_key}/getUpdates
将 api_key 替换为您的机器人令牌,如:
https://api.telegram.org/bot123456789:jbdtd78sadvbdy63d37gda37bd8/getUpdates
- 查找 "chat":{"id":-zzzzzzzzzz,-zzzzzzzzzz 是您的聊天 ID(带负号的)
-测试:您可以测试使用 curl 向群组发送消息:
curl -X POST "https://api.telegram.org/bot{api_key}/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text"
版权申明
本文系作者 @Leo 原创发布在开封菜博客站点。未经许可,禁止转载。
评论