termal.in

Blog

SSH, terminals and AI agents.

Notes from building Termalin — practical SSH patterns, terminal workflows, and what it takes to let agents operate servers without regretting it.

mcpsshmobaxtermai-agentscomparison

Does MobaXterm have an MCP server? (2026)

MobaXterm has no official MCP server. A community bridge reads your MobaXterm.ini sessions; other clients like Termalin give an AI agent keyless access with per-host rules. How each works — and PuTTY too.

Read the post →

homelabconnectorremote-accessself-hostedcomparison

Reach Home Assistant or Grafana Remotely Without Port Forwarding

Five honest ways to open a Home Assistant or Grafana dashboard from outside your LAN — Nabu Casa, Cloudflare Tunnel, Tailscale, a reverse proxy, and an invite-only Termalin link — compared, with setup.

Read the post →

windowsbackupsconnectorsysadminencryption

Windows Server Backup with Volume Shadow Copy — Encrypted, Nothing to Install

Back up a Windows Server with Termalin: open files caught by a Volume Shadow Copy, encrypted before storage, sent to S3 or your own server — with nothing installed but the Connector.

Read the post →

ai-agentsmcpsshsecuritytutorial

Give Hermes Agent SSH access to your servers without handing it a key

Hermes Agent's SSH backend keeps a key on the agent box and reaches one host. Connect Termalin as an MCP server instead: keyless, many hosts, audited.

Read the post →

vpslinuxcomparisontoolshomelab

Lightweight server monitoring for a VPS: Beszel vs Netdata vs Uptime Kuma vs Nezha (and when you need none)

Lightweight server monitoring for a VPS: Beszel, Netdata, Uptime Kuma, Nezha and Glances compared — what each watches, RAM, ports, alerts, and gaps.

Read the post →

mcpai-agentssshsecuritytutorial

OpenClaw and SSH: tunnel to the dashboard, and let the agent reach your servers without a key

Open the OpenClaw dashboard through an ssh -L tunnel, then let the agent run commands on your servers through MCP — no SSH key in its hands.

Read the post →

mcpsshtermiusai-agentscomparison

Does Termius have an MCP server? (2026)

Termius has no official MCP server. The community bridges (termius-mcp, yapp, Session MCP), Conduit and Termalin — how each connects Termius hosts to an AI agent.

Read the post →

mcpsshcomparisonai-agentstools

Which SSH clients support MCP in 2026

A dated table of SSH clients and terminals with MCP support — Termalin, Conduit, XPipe, Warp, Tabby, MobaXterm, Termius: built-in vs bridge, local vs hosted, tools, price, platforms.

Read the post →

mcpsshai-agentscomparisonsecurity

SSH MCP servers compared

The standalone SSH MCP servers (tufantunc/ssh-mcp, mcp-ssh and more), the hosted connectors (browser-ssh, sshrew) and Termalin — key custody, policy, audit, and when each fits.

Read the post →

sshtunnelingnetworkinghomelab

SSH into a server behind NAT or CGNAT, without port forwarding

Reach a server with no open port: reverse SSH tunnel, Tailscale or WireGuard, Cloudflare Tunnel, or an outbound connector — with trade-offs and setup.

Read the post →

sshssh-agentwindowstutorial

ssh-agent on Windows: start ssh-agent.exe, add your keys, fix error 1058

Start the OpenSSH Authentication Agent service (ssh-agent.exe), load keys with ssh-add, and fix error 1058 and 'error connecting to agent' on Windows.

Read the post →

ai-agentsmcpsshcomparisontools

The best SSH client with a built-in MCP server (2026 buying guide)

Five checks for an SSH client with a built-in MCP server: key custody, per-host policy, a hosted endpoint, live oversight, platforms. How Termalin scores.

Read the post →

geminimcpai-agentssshtutorial

Connect Google's Gemini CLI to your servers over SSH — safely

Gemini CLI speaks MCP, so it runs commands and manages files on your servers through Termalin — one entry in ~/.gemini/settings.json, no key handed over.

Read the post →

ai-agentssshsecuritymcptutorial

Per-host command allowlists: least-privilege SSH for AI agents

Holding an agent's key isn't enough — bound what it runs. Per-host command policies (full, allowlist, or blocked) are least-privilege SSH for AI agents.

Read the post →

sshai-agentssession-recordingproductivitytutorial

Watch many SSH sessions at once — a live grid for humans and agents

tmux and csshX tile your terminals; Termalin's watch grid tiles every open SSH session as a live view and glows the ones an AI agent is driving.

Read the post →

ai-agentssession-recordingauditsecuritymcp

How to audit and record what an AI agent does on your servers

An agent's summary of its work isn't a record. Get a tamper-evident trail of every command an AI agent runs over SSH, tagged as the agent's.

Read the post →

codexmcpai-agentssshtutorial

Connect OpenAI Codex to your servers over SSH — safely

Codex speaks MCP, so it runs commands and manages files on your servers through Termalin — one entry in ~/.codex/config.toml, no key in the agent's hands.

Read the post →

ai-agentsmcpci-cdsshsecuritytutorial

Give an AI agent SSH access in CI/CD — without a key in your secrets

Put a scoped, expiring token in your pipeline instead of an SSH key. How a workflow or CI agent reaches your servers over a hosted MCP endpoint — keyless.

Read the post →

mobaxtermsshmigrationtutorial

Where MobaXterm stores sessions — and how to export them

MobaXterm keeps sessions in the registry (installer) or MobaXterm.ini (portable). Where to find them, and how to export to a .mxtsessions file.

Read the post →

sshawsvpscloudtutorial

How to SSH into an EC2 instance or a VPS for the first time

The clean path into a fresh EC2 or VPS: the right login user, the key-permissions gotcha, the two errors everyone hits, and how to make it repeatable.

Read the post →

sshlinuxcomparisontools

Best SSH Clients for Linux in 2026

The honest answer starts with OpenSSH + tmux. When a GUI earns its place: Tabby, Termius, Remmina, WindTerm, Asbru-CM, XPipe and Termalin, compared fairly.

Read the post →

sshmacoscomparisontools

Best SSH Clients for macOS in 2026

iTerm2, Warp, Ghostty, Termius, Tabby, Royal TSX, SecureCRT, Core Shell and Termalin on a Mac, plus what actually replaces MobaXterm when you switch.

Read the post →

sshwindowscomparisontools

9 Best SSH Clients for Windows (2026): Free & Paid, Tested

PuTTY, MobaXterm, Windows Terminal, Bitvise, mRemoteNG, WindTerm, Tabby, Termius and Termalin compared honestly — free and paid, prices checked.

Read the post →

sshtermiuscomparisontools

9 Termius Alternatives in 2026 (Free and Paid, Tested)

Nine SSH clients we tested as Termius replacements: what's free, what syncs, what each is best at. Includes the one we build, judged by the same bar.

Read the post →

sshport-forwardingdatabasetunnelingsecurity

Connect to a database behind a firewall — over an SSH tunnel, without exposing the port

Reach a Postgres or MySQL database on a private subnet without opening 5432 to the internet — the manual ssh -L way, and how a Connector automates it.

Read the post →

ai-agentsmcpdatabasesecuritytutorial

How to give an AI agent safe access to your database (read-only by default)

Let Claude query your database without handing it the connection string. The pattern: the client holds the credential, the agent gets read-only queries.

Read the post →

claude-codecursormcpdatabasetutorial

Let Claude Code and Cursor query your database (safely) — the MCP setup

A hands-on setup: wire Termalin's Data client into Claude Code or Cursor over MCP to read Postgres, MySQL, Mongo, Redis — read-only, no connection string.

Read the post →

mcpclaudechatgptconnectorsssh

Manage your servers from claude.ai and ChatGPT — no key pasted anywhere

Add Termalin as a connector for claude.ai and ChatGPT: sign in, approve once, and the chat can check disk, tail logs and fix configs — audited, revocable.

Read the post →

sshssh-agentssh-keystutorial

ssh-agent and ssh-add, in practice: stop typing your passphrase

Start ssh-agent with eval "$(ssh-agent -s)", load keys with ssh-add, and fix 'Could not open a connection to your agent' and 'error connecting to agent'.

Read the post →

sshhomelabself-hostingtutorial

SSH into a Synology, QNAP or TrueNAS NAS, from anywhere

Enable SSH on a Synology, QNAP or TrueNAS NAS, reach it on your LAN, and get to it from anywhere without opening a port on your router.

Read the post →

rustconcurrencysshengineering

Take it out of the map: keeping a shared session store lock-free during slow work

An SSH client keeps every live session in a shared map behind a lock. Holding it through a slow handshake froze every other session — here's the Rust fix.

Read the post →

sshtroubleshootingdebuggingtutorial

How to read ssh -vvv output: the debug lines that actually matter

What -v, -vv and -vvv add, every SSH connection phase in order, and a decoder for lines like 'receive packet: type 51' and 'Offering public key'.

Read the post →

sshbastionsecuritynetworking

What is a jump host? (And how to use one without collecting keys on it)

A jump host (or jumphost) is the one hardened server you SSH through to reach a private network. Jump host vs bastion vs ProxyJump, a setup, 2 mistakes.

Read the post →

sshgittroubleshootingssh-keys

GitHub & GitLab SSH key not working? The step-by-step fix

"Does not provide shell access" means success — your key works. Next: check git remote -v is SSH, run ssh -T, push. Plus 8 fixes when it doesn't.

Read the post →

sshcheat-sheetproductivitytutorial

The SSH flags you'll actually use (a practical cheat sheet)

SSH command flags worth memorizing, organized by task — connection basics, -o, forwarding, jump hosts, session control — plus a compact reference table.

Read the post →

sshsession-recordingawscloudaudit

SSH session recording on EC2 (and other cloud VMs)

Instances are cattle — recordings must outlive the box. SSM Session Manager, EC2 Instance Connect, tlog and client-side recording — what each captures.

Read the post →

sshbastionsession-recordingsecurityaudit

How to record and audit SSH sessions on a Linux bastion host

The bastion sees every privileged session — record there. Server-side tlog vs client-side recording, what auditors need, and the keystroke trap to avoid.

Read the post →

sshport-forwardingtunnelingtutorial

SSH reverse tunnels (ssh -R): expose a local port through a remote server

How ssh -R works — the listener opens on the remote side. Demoing a dev server, reaching a machine behind NAT, catching webhooks, plus GatewayPorts.

Read the post →

sshscpsftprsynctutorial

scp vs sftp vs rsync: which to use, with examples

Three ways to copy files over SSH, compared: scp for one-shot copies, sftp for browsing and resume, rsync for syncing — plus gotchas and a summary table.

Read the post →

sshtroubleshootingnetworkingtutorial

SSH connection refused vs timed out: diagnose it in two minutes

Refused means the host said no; timed out means packets vanished. One nc -vz probe tells them apart — then a fix checklist for each.

Read the post →

sshsecuritytroubleshootingtutorial

Host key verification failed: what it means and the right way to fix it

The one SSH warning you shouldn't paste your way around: what host keys protect against, why the warning fires on innocent rebuilds, and how to re-verify.

Read the post →

ai-agentssshsecuritymcpcomparison

Every way to give an AI agent SSH access, ranked by blast radius

Pasted keys, agent forwarding, key-holding MCP servers, scoped credentials, custodians with policy — five approaches ranked by what a compromise costs you.

Read the post →

cursormcpai-agentssshtutorial

How to connect Cursor to a server over SSH (MCP setup)

Register Termalin's MCP server in .cursor/mcp.json so Cursor's agent runs commands on your servers — with no key in its environment and a per-host policy.

Read the post →

sshtroubleshootingssh-keystutorial

SSH permission denied (publickey): a fast, systematic fix

Permission denied (publickey) or (publickey,password)? Read ssh -vvv, then fix the causes in order: wrong user, key not offered, authorized_keys, modes.

Read the post →

sshsecurityssh-keystutorial

SSH agent forwarding is convenient and dangerous — and what to use instead

ForwardAgent (ssh -A) lets a remote host borrow your keys — and so can anyone with root there. What it does, and the safer ways to reach the next hop.

Read the post →

sshbastiontutorialsecurity

SSH Through a Jump Host with ProxyJump (ssh -J)

The clean way to SSH through a jump host: the ssh -J command, why it beats copying your key to the bastion, multi-hop chains, and the ssh_config.

Read the post →

mcpai-agentssecuritytutorial

MCP servers, explained: how to give an AI agent tools without handing over your keys

What an MCP server is — host, client, tools, transports — and the design choice that decides whether agent access is safe: who holds the credential.

Read the post →

sshai-agentslocal-llmsecurity

How to give a local LLM safe SSH access to your servers

Running a model locally protects your prompts — not your servers. The custodian pattern that lets a local LLM run commands over SSH without holding a key.

Read the post →

sshport-forwardingtunnelingtutorial

SSH port forwarding, explained: local, remote and dynamic tunnels

-L, -R and -D without confusion. One mental model for SSH tunnels, examples for each, the flags that make them stick, and the gotchas that break them.

Read the post →

sshssh-configproductivitytutorial

The ~/.ssh/config file: stop retyping the same SSH flags

Host aliases, ProxyJump, keepalives, per-host keys and identities — a practical tour of ssh_config, the file that turns ssh commands into one short word.

Read the post →

sshssh-keyssecuritytutorial

SSH key types in 2026: Ed25519 vs RSA vs ECDSA — which to use

A straight answer on SSH key algorithms — why Ed25519 is the default now, when RSA still matters, what to avoid, and the command to generate a modern key.

Read the post →

sshsession-recordingsecuritytutorial

How to record SSH sessions on Linux — without keylogging yourself

On Linux, compare script, asciinema, tlog and client-side recording: what each captures, where it's stored, and whether it logs your keystrokes.

Read the post →

ai-agentsmcpsshcomparison

SSH clients for AI agents in 2026: the landscape

Termalin, Gumpbox, VibeShell, standalone MCP servers — who does what, how each handles your keys, and which setup fits which workflow. An honest map.

Read the post →

claude-codemcpsshtutorial

How to connect Claude Code to a server over SSH — a hands-on walkthrough

Three steps to let Claude Code run real commands on your VPS through an MCP server — no key in the agent's environment, every action visible live.

Read the post →

puttysshmigrationtutorial

Leaving PuTTY: migrate your sessions, keys and habits without losing anything

Where PuTTY hides your sessions and host keys, how to convert .ppk keys to OpenSSH, and how to land the whole setup in a modern client in one evening.

Read the post →

sshscprsynctutorial

How to move files between two servers — without downloading them to your laptop first

scp -3, rsync, the tar-over-ssh pipe, S3 as a relay, and the GUI way: five ways to copy files server-to-server, and when each one wins.

Read the post →

sshtroubleshootingtutorial

13 common SSH errors and how to fix each one

Connection refused, Permission denied (publickey), host key changed, broken pipe, no matching key exchange: what 13 SSH errors mean and the exact fix.

Read the post →

ai-agentsmcpsshsecurity

How to let an AI agent deploy to your server — without handing it your SSH keys

Paste a private key into an agent's environment and you can never un-share it. A practical pattern — custodian, scope, watch — for agent deploy access.

Read the post →

Follow along via RSS.