SSH MFA · TOTP · YubiKey · FIDO2 · Duo

SSH MFA at the gateway. Because a stolen key shouldn't be enough.

Ezeelogin adds multi-factor authentication to every SSH session — SSH MFA, often called SSH 2FA — enforced once at the gateway. No PAM module on every server, no agents. And from 7.48.0, critical network devices can require their own step-up challenge.

No credit card · Self-hosted on your servers · Free setup

Enforced at

The gateway, once

On your servers

Nothing to install

Methods

Five for SSH, incl. FIDO2

Every session

Recorded and audited

Why SSH MFA

A stolen SSH key alone gives an attacker everything

SSH keys are stronger than passwords — but they’re still a single factor. Here’s what that means in practice.

Keys don't expire

Once placed on a server, a key works until someone removes it. A copy from a compromised laptop, a leaked backup or an exposed CI/CD secret grants immediate access with no expiry and no rate limit.

One factor, one point of failure

Whether it's a password or a key, single-factor authentication means stealing one credential is enough. Attackers don't need to break encryption — they just need the file.

Auditors ask for it first

PCI DSS v4.0 8.4.2 requires MFA for all non-console access into the CDE. NIST 800-53 IA-2(1) requires it for privileged accounts, and cyber-insurers now ask about it on every renewal.

MFA methods

Every major SSH MFA method, enforced at one gateway

Pick the factor that fits each team — hardware keys for high assurance, an authenticator app for convenience, or your existing identity provider.
Most Popular

Google Authenticator / TOTP

Six-digit codes from Google Authenticator, Microsoft Authenticator or any TOTP app. Works offline, and each code is single-use by default. Keep the gateway's clock in sync (NTP).

How to set it up →
Hardware Token

YubiKey (Yubico OTP)

Touch the key to sign in. Codes are verified through Yubico's cloud API, so you'll need a Yubico Client ID and Secret Key, and outbound access from the gateway to api.yubico.com.

How to set it up →
Phishing-Resistant

FIDO2 / WebAuthn

Sign in with a fingerprint, PIN, security key or an Android device. The credential only works on your real Ezeelogin domain, so a fake login page can't reuse it. Needs HTTPS with a valid certificate and a domain name. From Ezeelogin 7.37.0.

How to set it up →
Push or Passcode

Duo Security

Approve with a Duo push or enter a Duo passcode. Connect with your Duo Web SDK integration key, secret key and API hostname. The web panel must run on HTTPS with a domain name.

How to set it up →
Web Panel Login

RADIUS

Point Ezeelogin at your RADIUS server with its host and shared secret, and users enter the one-time code from RADIUS when they sign in to the web panel. It covers web panel logins only: SSH sessions in the Ezeelogin shell fall back to the security code.

How to set it up →
No Device Needed

Access keyword

A memorised phrase of at least 10 characters. At login, users type the characters from three random positions, never the whole phrase, and the web panel and SSH ask for different positions.

How to set it up →
Use Several at Once

Google Authenticator, YubiKey and Duo can all be enabled for the same user, so a lost phone or a forgotten key doesn't lock anyone out.

How it works

Enforced once at the gateway. Nothing on your servers.

Host-based MFA means a PAM module on every server. Gateway MFA means configuring it once, in one place.
Engineer

SSH client or browser

Signs in with a key or password plus a second factor.

Ezeelogin Gateway · Self-Hosted
1 Key or password checked
2 MFA verified — once per session
3 RBAC decides which servers
4 Session recorded and logged
Your Fleet
web-04 · Linux
db-01 · Linux
app-07 · Linux
core-sw-01 · switch ·

Default

Verify once, move freely

MFA is checked when the engineer signs in to Ezeelogin. After that, role-based access control decides which servers they can acess.

NEW Ezeelogin 7.48.0

Set-up MFA for critical devices

Mark core switches, routers, firewalls — or any device group — to ask for a second code each time they're opened. MFA for network devices →

Enforce

Everyone, or per group

Force MFA for all users from Settings → General → Two Factor Authentication, or only for chosen user groups. Users without MFA are asked to set it up at their next login.

How enforcement works →
Timeout

No half-open logins

Set a 2FA timeout in seconds. If no code arrives in time, the authentication session closes and the user starts again. Available from Ezeelogin 7.48.0.

2FA timeout →
Recovery

Lost phone or key

An admin clears the user's two-factor secret from user management, and the user sets MFA up again at next login. Or they sign in with another method they've already enabled.

Reset a user's 2FA →
Compared

Gateway MFA vs. a PAM module on every server

The practical difference between no MFA, host-based MFA and Ezeelogin’s gateway MFA.
Single-Factor SSH PAM Module Per Server Ezeelogin Gateway MFA
Stolen key or password Immediate access Blocked on servers that have it Blocked without the second factor
Per-server setup None — no MFA layer Install and maintain on every host None — enforced at the gateway
Phishing-resistant option No Depends on the module FIDO2
Methods per user — Usually one Several at once
Switches, routers, firewalls Password only Not possible — no PAM on the device Step-up MFA for remote server or network device access (7.48.0)
Session recording No No Every sessions are recorded
Compliance

Supports the MFA controls auditors check first

Gateway MFA gives you one place to show an auditor how every privileged SSH session was authenticated — and the recording of what happened next.

Supports controls for

  • PCI DSS v4.0 8.4.1 / 8.4.2 MFA for admin and CDE access
  • NIST 800-53 IA-2(1) MFA for privileged accounts
  • ISO 27001:2022 A.8.5 secure authentication
  • SOC 2 CC6.1 logical access controls
  • HIPAA §164.312(d) person or entity authentication
  • NYDFS 500.12 MFA for privileged accounts

Ezeelogin supports these controls; it is not itself certified against them.

NEW EZEELOGIN 7.48.0

Now: step-up MFA for network devices

Switches, routers and firewalls can't run a PAM module. Ezeelogin asks for a second factor every time an engineer opens one — no agents, no firmware changes, nothing on the device.

MFA for network devices →
Common questions

SSH MFA — questions answered

SSH MFA — often called SSH 2FA or SSH two-factor authentication — requires a second proof of identity, such as an authenticator code, a push approval or a hardware key, on top of a password or SSH key before a session starts. It matters because SSH keys are single-factor: if a private key is copied, an attacker gets immediate, persistent access to every server that trusts it, with no expiry and no rate limiting. MFA closes that gap.

Yes. PCI DSS v4.0 Requirement 8.4.2 requires MFA for all non-console access into the cardholder data environment, and 8.4.1 for non-console administrative access. Ezeelogin enforces MFA at the SSH gateway for every session, which supports these requirements without configuring anything on individual servers.

Phishing-resistant MFA binds the authenticator to the real service, so a fake login page can’t capture a usable credential. FIDO2/WebAuthn is the standard example, and Ezeelogin supports FIDO2. Ezeelogin’s YubiKey method uses Yubico OTP, which is a strong second factor but is not phishing-resistant in the same way.
Yes. That’s the core advantage of gateway MFA over host-based PAM modules. Ezeelogin enforces MFA at the jump server, before a session reaches any backend server, so there’s no PAM module or agent to install across your fleet. Enable your chosen methods once in the Ezeelogin admin panel and they apply to every server behind the gateway. YubiKey needs outbound firewall access to Yubico’s verification API.
Yes. Google Authenticator, YubiKey and Duo can all be enabled for the same user. At login they use whichever method they have to hand, which helps when a phone is lost or a key is left at home.
No. Keys are stronger than passwords but still single-factor. If a private key is copied from a compromised laptop, a leaked backup or an exposed CI/CD secret, the attacker has persistent access to every server that trusts it. MFA adds an independent second factor, so a stolen key alone can’t start a session.

Google Authenticator or any TOTP app, YubiKey via Yubico OTP, FIDO2/WebAuthn, Duo Security (push or passcode) and Ezeelogin’s access keyword, all enforced at the gateway before any SSH session starts. Authenticator app, YubiKey and Duo can all be enabled for the same user. Ezeelogin also supports RADIUS 2FA for web panel logins; in the Ezeelogin shell ( ezsh )it falls back to the security code if no other 2FA are enabled or use the recently enabled 2FA method.

If they’ve enabled a second method, such as YubiKey or Duo alongside an authenticator app, they simply use that one. Otherwise an admin clears the user’s two-factor secret from user management, and the user sets MFA up again at their next login.

Yes, for the web panel. Ezeelogin supports SAML and OpenID Connect with Okta, Microsoft Entra ID, Google Workspace, OneLogin, JumpCloud, Keycloak and more, so your identity provider’s MFA protects that login. SSH sessions use Ezeelogin’s own 2FA, because SAML and OpenID Connect can’t authenticate SSH. For users already signed in to the web panel through SAML or OpenID Connect, you can skip the second prompt. See identity and access management for SSO setup.

Not by default. MFA is verified once, when you sign in to the Ezeelogin gateway, and access to individual servers is then governed by role-based access control.

Close the SSH MFA gap today

MFA on every SSH session, from one self-hosted gateway · 30-day free trial · No credit card