
How to Use SSH on Windows With OpenSSH and WSL the Safe Way
Use SSH on Windows with the built-in OpenSSH client, the agent service, key permissions, WSL with its separate keys, and the optional server.
SSH, curl, DNS, ports and HTTP APIs from the terminal, for when a connection or a request will not behave.

Use SSH on Windows with the built-in OpenSSH client, the agent service, key permissions, WSL with its separate keys, and the optional server.

Verify an SSH host key fingerprint before trusting a server: read it on the server, compare the prompt, and use console output, SSHFP DNS or certificates.

Query JSON in Python the way jq does: load, walk nested keys safely, filter lists, group and count, and handle missing keys without KeyError.

Run a command on many servers at once with pdsh, parallel ssh, xargs -P or GNU parallel, with host lists, output labels, timeouts and a failure summary.

Handle API timestamps and time zones in scripts: ISO 8601 in UTC, epoch seconds versus milliseconds, GNU and BSD date, jq and daylight saving traps.

Upload and download large files through APIs with curl: stream, resume, retry, multipart and pre-signed URLs, size limits, checksums and progress.

Deploy from CI over SSH with a dedicated key limited by authorized_keys options, a pinned host key, a single deploy command and no StrictHostKeyChecking off.

Manage SSH known_hosts with ssh-keyscan: fetch host keys safely, verify fingerprints, hash entries, remove stale ones and use accept-new in automation.

Audit SSH logins on Linux: read auth logs and the journal, count failed attempts, list successful logins by key, spot invalid users and raise the log level.

Use a FIDO2 hardware key for SSH: generate an ed25519-sk key, choose resident or not, require touch and PIN, use it on new machines and keep a backup.

Write an SSH client in Go with golang.org/x/crypto/ssh: key or agent authentication, verified host keys through known_hosts, timeouts and running a command.

Write a simple concurrent TCP port scanner in Go with net.DialTimeout, a bounded worker pool, sorted results and notes on filtered versus closed ports.
One email when a new post is published. No spam.