Zero Trust SSH
jalth replaces SSH key distribution with Cloudflare Access short-lived certificates. Your IdP (Google, GitHub, Okta, or any OIDC) becomes your SSH authentication.
Enable SSH on a device
Section titled “Enable SSH on a device”jalth ssh enableConfigures the SSH CA, creates an infrastructure Access app, and starts the tunnel route for SSH on this device.
Connect to a device
Section titled “Connect to a device”jalth ssh homeserverOpens browser SSO (if needed), obtains a short-lived certificate, and connects via ssh.
Manage access
Section titled “Manage access”# Allow an email to SSH into this devicejalth ssh allow alice@team.com
# Allow on another devicejalth ssh allow bob@team.com --device staging-vm
# Revoke accessjalth ssh revoke alice@team.com
# List who can SSHjalth ssh list
# Register additional UNIX usersjalth ssh add-user deployjalth ssh remove-user deploy
# Disable Zero Trust SSHjalth ssh disableHow it works
Section titled “How it works”- You run
jalth ssh <device> - Cloudflare Access authenticates you via SSO
- A short-lived SSH certificate is issued (minutes, not years)
sshconnects through the device’s tunnel with the certificate- Revocation is instant — remove the email from Access policies
vs traditional SSH keys
Section titled “vs traditional SSH keys”| SSH keys | jalth SSH | |
|---|---|---|
| Distribution | Copy pubkeys to every machine | None — IdP handles auth |
| Revocation | Manual removal from every authorized_keys | Remove from Access policy |
| Expiry | Never (unless rotated) | Short-lived certificates |
| Audit | Limited | Cloudflare Access logs |
Prerequisites
Section titled “Prerequisites”sshdrunning on the target devicesshclient on your machinesudofor CA configuration writes- Device must be on the mesh with a
cloudflaredtunnel
Run jalth doctor if SSH setup was skipped during init/join.