Break Glass Account in SSH: Secure Emergency Access Configuration (Debian)
Overview
A Break Glass Account is a highly privileged account designed for emergency access when standard authentication methods fail. This guide explains how to configure an SSH Break Glass Account (admin
) specifically for Debian-based systems, that allows login only via an SSH key, bypassing single-factor authentication (1FA) and passwords.
Note: The machine should be onboarded into the tenant and have 1FA configured for regular users.
Use Case: Ensuring Emergency Access While Enforcing 1FA
- Break Glass Account (
admin
): Can log in only using an SSH key (bypasses 1FA and password). - Regular Users (
user_with_authnull_mfa
): Must use keyboard-interactive authentication (1FA enforced).
1. SSH Configuration (/etc/ssh/sshd_config
)
Relevant section:
PubkeyAuthentication yes
PasswordAuthentication yes
KbdInteractiveAuthentication yes
UsePAM yes
Match User admin
AuthenticationMethods publickey
PasswordAuthentication no
KbdInteractiveAuthentication no
Match User user_with_authnull_mfa
AuthenticationMethods keyboard-interactive
PubkeyAuthentication no
Explanation
- Global Settings:
PubkeyAuthentication yes
: Allows SSH key authentication.PasswordAuthentication yes
: Enables password authentication.KbdInteractiveAuthentication yes
: Enables keyboard-interactive (1FA).UsePAM yes
: Ensures PAM authentication is applied.
- Break Glass Account (
admin
):AuthenticationMethods publickey
: Only SSH key authentication is allowed.PasswordAuthentication no
: Password login is disabled.KbdInteractiveAuthentication no
: 1FA is disabled.
- Regular Users (
user_with_authnull_mfa
):AuthenticationMethods keyboard-interactive
: 1FA must be used (Accepting Authnull Authenticator App notification).PubkeyAuthentication no
: Prevents SSH key usage.
2. PAM Configuration (/etc/pam.d/sshd
)
Since SSH is configured to use PAM (UsePAM yes
), the actual enforcement of password authentication (or 1FA) happens in /etc/pam.d/sshd
.
# Enforce 1FA (e.g., Google Authenticator or Authnull)
auth required /usr/local/lib/security/pam_google_authenticator.so debug nullok
auth required pam_permit.so
3. Testing the Setup
Test Break Glass Account (admin
):
Try logging in using only an SSH key:
ssh -i /path/to/private_key admin@<your-destination-machine-ip>
Expected: You should log in successfully without an MFA or password prompt.
To check SSH logs:
sudo journalctl -xe -f
Test MFA User (user_with_authnull_mfa
):
Try logging in without an SSH key:
ssh user_with_authnull_mfa@<your-destination-machine-ip>
Expected: User should be prompted for 1FA in Authnull Authenticator App.
4. Summary of Behaviour
User | Allowed Authentication Methods | Requires MFA? | Can Use SSH Key? | Password Allowed? |
---|---|---|---|---|
admin (Break Glass) | Public Key Only | No | Yes | No |
user_with_authnull_mfa | Keyboard-Interactive | Yes | No | Will be replaced with Authnull App notification |
Conclusion
- 1FA is enforced for regular users (
user_with_authnull_mfa
). - A Break Glass Account (
admin
) is available to bypass 1FA if needed. - You can modify the config to allow both SSH key and 1FA if required.
For questions or troubleshooting, see the Linux Endpoints section or contact your system administrator.