SSH login alerts on Telegram,
the moment they happen

OxiWatch is a free, open-source SSH login monitor for Linux. Get an instant Telegram notification on every successful login, plus a daily report of failed brute-force attempts — with GeoIP. One binary, runs as a systemd service.

# Quick install (Debian / Ubuntu)
curl -sSL https://raw.githubusercontent.com/oxisoft/oxiwatch/main/scripts/install.sh | sudo bash

Everything you need to watch SSH access

Real-time alerting and daily reporting for one server or a whole fleet.

Instant Telegram alerts

Get notified the second someone logs in over SSH — with username, source IP, and country.

🛡️

Daily failed-login report

A morning summary of brute-force attempts and your top attacker IPs, so nothing slips by.

🌍

Built-in GeoIP

See where logins and attacks come from. Uses free DB-IP Lite — no API key or registration.

📡

Real-time journal watch

Reads the systemd journal directly. No log files to tail, no PAM hooks to install.

🗄️

Local SQLite history

Keeps an audit trail of logins with configurable retention. Your data stays on your server.

🔄

Self-upgrading

A single static binary that updates itself from GitHub releases with oxiwatch upgrade.

How it works

From zero to live alerts in three steps.

Create a Telegram bot

Talk to @BotFather for a token and grab your chat ID from @userinfobot.

Run the installer

The script downloads the right binary, asks for your bot token and chat ID, and sets up the systemd service.

Get alerted

OxiWatch watches SSH in real time. Every successful login pings your Telegram instantly; failed attempts arrive in the daily report.

OxiWatch and fail2ban

Not a competitor — a complement. Run both on the same machine.

fail2banOxiWatch
RolePrevention — bans IPs after failuresVisibility — alerts & summarizes
Acts onFailed attempts (firewall bans)Successful logins + failed attempts
Notifies youNot out of the boxTelegram, in real time
Tells you who got inNoYes

fail2ban keeps attackers out. OxiWatch keeps you informed. Together they cover both sides.

Frequently asked questions

SSH monitoring, Telegram alerts, GeoIP, and more.

How do I get a Telegram notification when someone logs into my server over SSH?

Install OxiWatch and point it at a Telegram bot. It sends an instant message on every successful SSH login — including the username, source IP, and country.

Does OxiWatch replace fail2ban?

No. fail2ban blocks repeated failed attempts; OxiWatch tells you who actually logged in and summarizes attacks in a daily report. They solve different problems and run together on the same machine.

Which Linux distributions are supported?

Any Debian-based distribution with systemd. OxiWatch is tested on Debian 12 and 13 and works on Ubuntu and derivatives.

Does it work with OpenSSH 10.0+?

Yes. OxiWatch tracks the sshd, sshd-session, and sshd-auth syslog identifiers, so logins and failed attempts are captured on newer OpenSSH releases.

Is a GeoIP API key required?

No. OxiWatch uses the free DB-IP Lite database and downloads and updates it automatically. No account, key, or license is needed.

Does it monitor failed SSH login attempts too?

Yes. Failed attempts — including invalid users and pre-auth disconnects — are recorded and summarized in a daily Telegram report with the top attacker IPs.

Can I monitor multiple servers in one Telegram chat?

Yes. Install OxiWatch on each server and point them at the same chat. Set server_name so each alert is clearly labeled.

Is OxiWatch free and open source?

Yes — it's MIT licensed and free to use. The source is on GitHub.