Teams can now SSH securely without tunneling or workflow changes, as Pomerium introduces native SSH oauth-integrated authentication that works with standard SSH clients and leverages identity-aware, policy-driven authorization.
With this release, Pomerium acts as an SSH certificate authority (CA), signing temporary certificates based on successful OAuth authentication. Instead of managing per-user static keys on every server, access is tied to your identity provider (IdP) and enforced in real time by policy.
This makes SSH access:
Zero Trust-aligned
OAuth-backed and centrally authorized
Ephemeral and auditable
Easy to manage at scale
Users connect via:
SSH client → Envoy → Pomerium
The user initiates an SSH connection.
Pomerium prompts an OAuth login (via keyboard-interactive + device code flow).
After successful authentication, Pomerium evaluates context-aware policy for authorization, then generates a short-lived SSH certificate.
The certificate is signed using a configured User CA private key.
Pomerium creates an SSH connection to the desired host using the short-lived SSH certificate.
The SSH server grants access if it trusts the User CA and the certificate fields match policy.
If a user logs in again with the same public key, their credentials will be cached for the duration of the pomerium session or until revoked
No changes are required to SSH clients or existing key setups. Servers must be configured to trust Pomerium's User CA via sshd_config (TrustedUserCAKeys)
.
The generated certificates embed fields like:
Valid principals (usernames)
Expiration time
Session restrictions (e.g., deny port forwarding, shell access)
Static SSH keys are risky and hard to manage at scale. With native SSH support, Pomerium enables:
Fine-grained access based on identity and policy
Fast, easy revocation (just disable the user or change a policy)
Short-lived certs that reduce exposure without burdening users
No need for VPNs, bastion hosts, or custom ssh clients
Perfect for on-call access, ephemeral production access, or Zero Trust SSH in regulated environments.
Generate a User CA key pair
Update your pomerium.config.yaml
to enable SSH support
Define your SSH routes
Distribute the User CA public key to trusted servers (sshd_config → TrustedUserCAKeys
)
Restart SSHD
📖 See our docs for the full setup guide.
We're just getting started with SSH:
Command restrictions and session metadata (coming soon)
Audit integrations for session logging
Secure SSH, simplified and policy-driven.
This is SSH the Zero Trust way — powered by Pomerium.
Embrace Seamless Resource Access, Robust Zero Trust Integration, and Streamlined Compliance with Our App.
Company
Quicklinks
Get our product updates delivered directly to your inbox