EST. 2026 — Notes from real server work SYSADMIN · SECURITY · AI · DIRECTADMIN Issue 01
THE SYSADMIN ALMANAC
Home / Tags / SSH
SSH

#SSH

10 articles
Workflow
Silent Overwrites on Upload: Three File Copying Traps
Linux

Silent Overwrites on Upload: Three File Copying Traps

Upload two files with the same name together, and the second silently overwrites the first. No error, no failing exit code, and every page still returns 200. The English page just becomes a Thai page. These are three traps that let file copying cause damage without any warning.

#deployment#pscp#plink#putty
8 min read·24 Oct
One Tunnel Is the Only Way In—and a Single Point of Failure
Network

One Tunnel Is the Only Way In—and a Single Point of Failure

The machine sits behind NAT with no ports open to the internet. Every way in runs through one cloudflared tunnel — web, SSH, and remote desktop. This article covers the four ingress routes I set up, how to read the signs when it goes down, and the trap that keeps the tunnel from starting at boot.

#cloudflare#cloudflared#tunnel#zero-trust
10 min read·5 Oct
Automated Image Uploads Stopped for 4 Days: ssh Chosen by PATH
Linux

Automated Image Uploads Stopped for 4 Days: ssh Chosen by PATH

Write subprocess.run(["ssh", ...]) and leave the system to choose the binary from the caller's PATH. One day the caller changes, and the binary changes with it. File transfers fail silently for 4 days while reporting success every time. This article covers how I tracked it down, a helper that probes the actual binary before using it, and a completeness check before declaring the job done.

#ssh#python#automation#scp
9 min read·21 Sep
Auditing prod with real customer data without leaving a single row
Linux

Auditing prod with real customer data without leaving a single row

The system owner asked me to test the entire system on the live server holding customer data without leaving even a single junk row behind. My approach was to bootstrap Laravel myself and call controllers directly inside a transaction that I rolled back, with a COUNT of every table before and after as evidence.

#laravel#php#mysql#mariadb
11 min read·13 Sep
Automating Remote Windows Tasks with SSH + Task Scheduler
Linux

Automating Remote Windows Tasks with SSH + Task Scheduler

Move heavy workloads to a more powerful machine over SSH, then automate them with schtasks — with pitfalls that cost me real time, from landing in PowerShell 5 instead of bash over ssh, to backslashes getting swallowed when writing .bat files, to file transfers hanging until I switched to plink

#windows#ssh#powershell#automation
9 min read·26 Aug
Writing Scripts on Windows for Linux — Two File Cleanup Traps
Linux

Writing Scripts on Windows for Linux — Two File Cleanup Traps

Writing helper scripts on Windows and using scp to run them on Linux is routine work, but two things keep catching me out — d:\ paths embedded in scripts turn into strange filenames in /tmp that trigger the file monitor, and token/payload files get left behind on the server. This article lays out my rules for avoiding these mistakes.

#automation#windows#linux#sysadmin
6 min read·16 Jul
Create .ppk Files for plink/pscp on Windows Without Opening puttygen
Linux

Create .ppk Files for plink/pscp on Windows Without Opening puttygen

puttygen.exe on Windows is GUI-only and cannot batch-convert OpenSSH to .ppk (it returns unrecognised option) — this article writes PPK v3 files directly with Python, including the hard-to-find HMAC-SHA-256 MAC formula, ready to use with plink/pscp/WinSCP.

#ssh#putty#windows#python
7 min read·15 Jul
Managing Linux Servers Safely with AI over SSH
AI

Managing Linux Servers Safely with AI over SSH

How I actually use Claude to audit and fix Linux server security over SSH, from preparing my machine and storing secrets to hard rules before touching production

#claude-code#ssh#ssh-hardening#security
13 min read·12 Jun
Put an Idle VPS to Work with WireGuard — A Complete Client Guide
Network

Put an Idle VPS to Work with WireGuard — A Complete Client Guide

Turn a VPS you signed up for on an annual plan into a WireGuard hub for accessing your home LAN anytime, without port forwarding — covering app installation, config imports, QR scanning, troubleshooting, and administration

#wireguard#vpn#vps#networking
12 min read·9 Jun
A Telegram Bot for DA Server Monitoring with a Small Blast Radius
Network

A Telegram Bot for DA Server Monitoring with a Small Blast Radius

A guide to setting up a Telegram bot as a lightweight control surface for monitoring a DirectAdmin server — read-only commands plus IP blocking/unblocking only, with no open ports, no added services, and a blast radius limited by least privilege at every layer

#telegram#bot#monitoring#alerting
13 min read·1 Jun