如何通过Python脚本来监听和报告服务器(SSH)连接?

我对Python有点新,但是一个有经验的程序员。 我正在编写一个Python 2.7脚本,应该在启动时由Linux服务器启动。 目的是通过各种媒介发送用户连接到服务器时的通知。

我的问题与实际的倾听有关。 我怎样才能让模块看到用户连接(通过SSH,或其他)到服务器? 一些快速伪代码:

# When a connection is made # Send an email # Send a text message # Send notification to server output # Etc... 

我想包括通知中的一些细节,如用户名,IP,连接时间,上次连接,一个可爱的自定义连接消息,无论如何。 任何关于如何最好地做这些事情的方法都是值得赞赏的,但我相信我可以在其他地方弄清楚。

预先感谢您的任何指导!

如果您的sshd使用syslog,则可以将syslog配置为将auth工具发送到命名管道,然后编写一个Python脚本来读取FIFO。 这是一个使用bash的例子。

或者像sblom说的那样,你可以在Python脚本中放置/var/log/auth.log。 无论哪种方式,你应该得到这样的线条:

 Mar 29 19:58:13 mybox sshd[13914]: Accepted password for jtg from 192.168.0.20 port 51538 ssh2 

pam_python将允许您编写一个PAM模块,该模块可以通知使用PAM的任何服务的身份验证尝试。