SSH Scanning
Automated scanning of the public internet for servers with open SSH (port 22), followed by brute-force login attempts against any that respond.
Last updated:
What is SSH scanning?
SSH scanning is the constant background-noise activity of attackers probing every routable IPv4 address for an open SSH service on port 22, and attempting to log in once a responsive server is found. Any public-internet SSH server on its default port receives thousands to hundreds of thousands of login attempts per day from this traffic, regardless of how obscure or small the server is. Most of the attempts come from botnets of previously-compromised servers running the same scanner script.
What scanners try
A typical SSH-scanning campaign runs through a dictionary of common usernames (root, admin, ubuntu, ec2-user, oracle, postgres, git, pi) paired with common passwords and default vendor credentials. More patient campaigns layer in credential stuffing — trying leaked username:password pairs against SSH in the hope a sysadmin reuses a personal password. Successful logins are immediately followed by malware drop, crypto-mining, or enrollment of the new host into the scanning botnet.
How to harden SSH against scanning
Standard best practice cuts the attack surface to near zero:
- Disable password authentication — require SSH keys only. Key-based auth cannot be brute-forced in human timescales.
- Disable root login — force attackers to guess both a username and a password.
- Move SSH off port 22 — reduces noise dramatically, though is not security on its own.
- Use a firewall or fail2ban to block IPs after a few failed attempts.
- Allowlist management IPs if you know them — typical for cloud infrastructure management.
Checking the source IPs of failed attempts against an IP abuse report checker confirms they belong to the known SSH-scanning swarm.