Before you connect
Prepare the server address, SSH port, username, authentication method, and the server's trusted host-key fingerprint. Use a dedicated, least-privileged account when monitoring does not require administrative changes.
- Use a private key or strong password created for this server.
- Obtain the SSH host-key fingerprint from the server console, hosting panel, or administrator.
- Keep private keys out of notes, screenshots, tickets, and chat messages.
- Do not use
rootwhen read-only system commands are sufficient.
1. Verify the server identity
SSH protects the connection only when you know which server key you are trusting. You can inspect the presented key before authenticating:
ssh-keyscan -p 22 server.example.com 2>/dev/null | ssh-keygen -lf -
ssh-keyscan retrieves the key that the network presents; it does not prove that the key is genuine. Compare the resulting fingerprint with one obtained independently from the server console or administrator. Stop if the values do not match.
2. Connect from macOS
Open Terminal on the Mac and connect with the expected username and port:
ssh -p 22 user@server.example.com
On the first trusted connection, macOS records the host identity in ~/.ssh/known_hosts. A later host-key warning may indicate a legitimate server rebuild, but it can also indicate that traffic is reaching a different machine. Verify the new fingerprint before accepting it.
3. Collect a useful health baseline
A quick server check should cover several independent signals. One healthy number cannot rule out a memory leak, full filesystem, overloaded process, or failing connection.
Uptime and load
uptime
cat /proc/loadavg
Compare load averages with the number of logical CPU cores. A sustained load far above the available cores usually means work is waiting for CPU or uninterruptible I/O.
CPU and memory
nproc
free -h
ps -eo pid,user,%cpu,%mem,etime,comm --sort=-%cpu | head -n 16
Linux intentionally uses spare memory for filesystem cache, so “free” memory alone is misleading. Focus on the available value, swap pressure, and whether the same processes keep growing.
Disk capacity
df -hP
Check every relevant mount point, not only /. Database, container, backup, and log volumes often fill independently. Investigate a filesystem before it reaches the point where services cannot create temporary files or write logs.
Network interfaces
ip -s link
Interface counters help distinguish application slowness from packet errors, drops, or an inactive interface. Compare rates over time rather than treating a single cumulative counter as current traffic.
4. Decide when a dashboard is useful
Manual SSH checks are excellent for one-off diagnosis. They become repetitive when you operate several hosts or need to compare the same metrics consistently. A native monitoring dashboard can collect the same read-only signals, preserve recent trends locally, and keep alerts, processes, and terminal access together.
Server Sentinel connects directly over SSH, pins host public keys, stores credentials in the device Keychain, and needs no developer cloud account. Collection runs while the app is open. View it on the Mac App Store.
5. Keep the monitoring path secure
- Verify host keys through a separate trusted channel.
- Prefer an unprivileged monitoring account and grant only the commands it needs.
- Protect private keys with appropriate local permissions and never send them to support.
- Restrict SSH exposure with a firewall, VPN, or trusted network where practical.
- Remove accounts and keys when a device, administrator, or server is retired.
Frequently asked questions
Can I monitor a Linux server from a Mac without installing an agent?
Yes. Standard SSH commands can report CPU, memory, disk, uptime, and process information without installing a monitoring agent.
Which metrics should I check first?
Start with reachability, uptime and load, CPU use, available memory, disk capacity, network activity, and the processes using the most CPU or memory.
Is an SSH host key fingerprint the same as a password?
No. A host key fingerprint identifies the server. Compare it with a fingerprint obtained through a trusted channel before sending credentials.