Как я могу прослушивать и отправлять серверные сообщения (SSH) через скрипт Python?

Я немного новичок в 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, время соединения, последнее соединение, симпатичное сообщение о подключении, что угодно. Любые пропуски о том, как делать эти вещи лучше всего, тоже ценятся, но я уверен, что смогу это понять в другом месте.

Заранее благодарю за любое руководство!

2 Solutions collect form web for “Как я могу прослушивать и отправлять серверные сообщения (SSH) через скрипт Python?”

Если ваш sshd использует syslog, вы можете настроить syslog для отправки объекта auth в именованный канал, а затем написать скрипт Python для чтения FIFO. Вот пример, который использует bash.

Или, как сказал sblom, вы могли бы tail /var/log/auth.log в сценарии Python. В любом случае, вы должны получить такие строки:

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

pam_python позволит вам написать модуль PAM, который может уведомлять об попытках аутентификации для любой службы, использующей PAM.

  • Можно ли использовать os.walk через SSH?
  • Каков самый простой способ использования SSH с помощью Python?
  • Распределение Paramiko и Pseudo-tty
  • python ssh в jumpserver, а затем ssh в хост от jumpserver для выполнения команды
  • tkinter.TclError: не удалось подключиться к отображению "localhost: 18.0"
  • Python - Paramiko - несовместимый ssh-сервер
  • Выполнить удаленный скрипт python через SSH
  • mysql_config не найден при установке интерфейса mysqldb python
  • Парамико: блокирование блоков навсегда
  • Как удаленно выполнить процесс с помощью python
  • pysvn запрашивает пароль с помощью svn + ssh
  • Python - лучший язык программирования в мире.