AuthFI PAM
SSH without shared keys.
MFA on every login.
AuthFI PAM replaces SSH keys with identity. MFA enforcement, role-based sudo, session recording, automatic provisioning and deprovisioning.
Available on Pro and above. See pricing
The mechanism
No key in authorized_keys. An identity on every login.
Classic SSH trusts a long-lived public key sitting in each host's ~/.ssh/authorized_keys. That key has no owner, no expiry and no second factor — copy it
once and you have standing root until someone remembers to revoke it. AuthFI PAM removes the static
key entirely. Authentication runs through identity first: AuthFI verifies the user,
enforces MFA — TOTP or passkey on every SSH login, and only then grants access. No
more shared keys.
- The problem it removes: orphaned keys — credentials that outlive the employee because nobody ran
grepacross the fleet on their last day. - Bound to a person: the session carries
alice@acme.com, not an anonymous key fingerprint, so the audit trail names a human. - The payoff: disable the user in AuthFI and they are locked out of every server instantly — one switch, whole fleet.
$ ssh prod-db-01.acme.authfi.io AuthFI PAM | Authenticating alice@acme.com MFA Required | Enter TOTP code: 847291 Verified | MFA passed. Session started. User: alice@acme.com Role: devops Sudo: enabled (via group: devops) Session: recording Expires: 2h from now alice@prod-db-01:~$ sudo systemctl status postgres * postgresql.service - PostgreSQL Active: active (running)
Every SSH login requires identity verification before a shell exists.
Credentials that expire
Short-lived, not standing. The credential dies before it can leak.
A standing key is a liability that compounds: every laptop it lands on, every backup, every
ex-employee's home directory is a copy you can't see. AuthFI shrinks the blast radius by making the
credential ephemeral — after a successful, MFA-verified login the session is scoped
to a short window (the terminal above shows Expires: 2h), then re-authentication is
required. A credential that expires in hours has almost no resale value if it leaks.
- One trust root: hosts trust a single certificate authority instead of an ever-growing pile of per-user keys — the model OpenSSH's CA design (
TrustedUserCAKeys) was built for. - Revocation is a non-event: you never chase keys across N machines — you stop minting them for that identity.
- The payoff: the offboarding checklist shrinks to one line, and the auditor's "who could log in here?" has a single, current answer.
Authorization
Roles broker sudo. No one hand-edits sudoers again.
Authentication proves who; authorization decides what. AuthFI maps its roles to
Linux primitives directly — AuthFI roles map to Linux groups and sudoers rules
automatically. A user in the devops role lands in the matching Linux group, and
the group's sudoers policy follows. The classic failure mode here is configuration
drift: a hand-maintained /etc/sudoers that diverges per host until nobody can say who
has root. Centralizing the role→group→sudo mapping removes that drift — privilege is derived from
identity, not pasted onto a box.
- Least privilege by default: on
prod-db-01,devopsgets sudo anddevgets read-only — the same role can be sudo on one host and unprivileged on the next. - Auto-provisioned accounts: a user created in AuthFI becomes a Linux account on next SSH — no
useraddrunbook, no pre-staging. - The payoff: grant or revoke elevation by editing one role, and every host honors it on the next login.
devops
devops
(ALL) ALL
# derived from role membership, not hand-edited %devops ALL=(ALL) ALL %dev prod-db-01=(ALL) /usr/bin/less /var/log/*
Accountability
Every command, captured. Every session, attributable.
Privileged access without a recording is an unanswerable incident review. AuthFI captures the session itself — every command logged, searchable, replayable, compliance-ready — and binds it to the identity that ran it, not a shared key. When an auditor asks "who touched the prod database, when, and exactly what did they type?", the answer is a query, not an archaeology project.
Session recording
Commands and output are captured per session and tied to the authenticated user. Searchable for "what happened" and replayable for "show me" — the evidence SOC 2 and PCI access reviews ask for.
Bound to a human
Because the credential is an identity and not a shared key, one identity maps to one session. There is no "the ops key did it" — the trail names alice@acme.com.
MFA on the record
The login itself is part of the trail: TOTP or passkey was presented before the shell opened, so the audit shows a verified human, not a process that found a key on disk.
Operate the fleet
Server inventory with access levels.
See all servers, who has access, and at what level — managed from the dashboard. Per host you see the OS, which role gets what, whether MFA is required, and whether the box is reachable right now.
| Server | OS | Access | MFA | Status |
|---|---|---|---|---|
| Ubuntu 22.04 | devops: sudo, dev: read-only | Required | Online | |
| Debian 12 | devops: sudo, dev: sudo | Required | Online | |
| Ubuntu 22.04 | dev: sudo | Optional | Online | |
| Amazon Linux | devops: sudo | Required | Offline |
Offline fallback
Networks partition; SSH can't wait for an IdP that's unreachable. Cached credentials cover network interruptions, and break-glass access keeps a documented, recorded path to a box when the control plane is down.
eBPF integration
Combine PAM with the AuthFI Agent to run SSH and HTTP policies on the same host. eBPF observes syscalls and connections in the kernel, so enforcement isn't bolted onto one protocol — it sees the workload itself.
Multi-OS support
Ubuntu, Debian, RHEL and Amazon Linux, shipped as native apt and yum packages — the same identity model whether the host is Debian-family or RHEL-family.
Enterprise PAM
Enterprise PAM features.
Identity-bound access, brokered privilege, captured sessions and lifecycle automation — one engine across the fleet, configured from the console.
MFA enforcement
TOTP or passkey on every SSH login. No exceptions.
Role-to-sudo mapping
AuthFI roles map to Linux groups and sudoers rules automatically.
Session recording
Every command logged. Searchable. Replayable. Compliance-ready.
Auto provisioning
User created in AuthFI -> Linux account created on next SSH.
Instant deprovision
Disable user -> locked out of every server instantly.
Offline fallback
Cached credentials for network interruptions. Break-glass access.
eBPF integration
Combine with Agent for SSH + HTTP policies on the same host.
Multi-OS support
Ubuntu, Debian, RHEL, Amazon Linux. apt and yum packages.
Get started
Ready to get started?
Free for 5,000 monthly active users. No credit card required.