For: anyone testing Authyo RDP Guard on a Linux server (no prior Authyo
knowledge needed). Follow the steps in order.
Covers: Ubuntu / Debian and RHEL / Rocky / Alma / Amazon Linux.
Version: 1.1.5 ย |ย Updated: 2026-07-03
Normally, logging into a Linux server over SSH asks for a password.
Authyo RDP Guard adds a second step: after the password, it sends a
one-time code (OTP) to a registered email/phone, and the user must enter
that code to get in. This protects the server even if someone steals the
password.
You will:
Tick each box before you begin:
sudo (or you are the root user).app.authyo.io on the internet. (Test: runcurl -I https://app.authyo.io โ you should get an HTTP/... response,authyo-gatekeeper_1.1.5-1_amd64.debauthyo-gatekeeper-1.1.5-1.x86_64.rpmโ ๏ธ GOLDEN SAFETY RULE โ read this once:
While testing, keep your current SSH window open and open a SECOND SSH
window to test new logins. If anything goes wrong, your first window is
still logged in and you can undo the change. Never close your only session
during setup.
Run this on the server:
cat /etc/os-release | head -2
.deb)..rpm).Copy the install file onto the server first (e.g. with scp, or download it
directly on the server with wget <link>). Then:
.deb)# Go to wherever you put the file, then install it:
sudo apt-get update
sudo dpkg -i authyo-gatekeeper_1.1.5-1_amd64.deb
# If it complains about missing dependencies, this one command fixes it:
sudo apt-get install -f -y
.rpm)# Use dnf (or yum on older systems) โ NOT "rpm -i" โ so dependencies install too:
sudo dnf install -y ./authyo-gatekeeper-1.1.5-1.x86_64.rpm
# Older systems:
# sudo yum install -y ./authyo-gatekeeper-1.1.5-1.x86_64.rpm
Confirm it installed:
authyo-configure --version
You should see authyo-configure 1.1.5. โ
ENRL- appears (e.g.ENRL-XA9W-FF5G-QXWS-64ET-5QNY). Click Copy.This key is valid for 60 minutes and can be used once. If it expires,
just click "Get license key" again for a fresh one.
On the server, run the setup wizard:
sudo authyo-configure
Answer the prompts:
"Do you have an enrollment key (ENRL-...)? [Y/n]" โ type y and Enter.
"API endpoint" โ just press Enter (it defaults to https://app.authyo.io).
"Enter your enrollment key (ENRL-...)" โ paste the key you copied
(right-click to paste in most terminals), press Enter.
Contacts โ WHO gets the OTP (this is important, read carefully):
admin (this is a catch-all: it will receive theyou@example.com).2 for Email (Email is the most reliable; SMSN.Security Policy โ press Enter to accept the defaults, EXCEPT:
0 (so it asks for OTP every time โ"Exempt usernames" โ this is a safety list of users who log in with
password only (no OTP). Type a username you can always use as a backup, e.g.
admin (or your own admin username). This is your lockout safety net.
"Enroll Google Authenticator?" โ type N (optional; skip for the
basic test).
Review the summary, then "Write this config...? [Y/n]" โ type Y.
โ Wrote /etc/authyo/gatekeeper.conf andโ Added pam_authyo.so to /etc/pam.d/sshd. โ
You never typed a Client ID, Client Secret, or long license key โ the one
ENRL- key handled all of it. That's the point.
โ ๏ธ Keep your current window open. Do the test in a SECOND SSH window.
Open a new terminal / new SSH window and log into the server as a
normal user (not one on the exempt list). For example, from your PC:
ssh someuser@<server-ip>
What you should see:
someuser@server's password: โ enter the normal password
Authyo verification for someuser
OTP sent via Email to you***com. โ the OTP was emailed
Enter the OTP, or:
[R] Resend (tries your next channel)
> ______ โ type the code from your email
๐ That's the proof it works: login now requires the password AND an OTP.
Prefer not to use a full SSH session? You can also just run
sudo authyo-configure --testโ it sends a real test OTP to your contact and
confirms delivery works (note: this spends a small amount of Authyo wallet
balance).
This shows what happens when you turn the guard off for a server from the
website: it goes back to password-only login (no OTP).
sudo systemctl start authyo-gatekeeper-heartbeat.service
ssh someuser@<server-ip>
To turn the guard back on: re-activate the server on the website (or re-run
sudo authyo-configure with a fresh key), then run the heartbeat command again.
Run this to see the recent decisions the guard made:
sudo tail -n 20 /var/log/authyo/gatekeeper.log
SENDOTP_OK ... via=Email then GATE_PASS.GATE_STEPASIDE ... activation=deactivated.Check overall status any time:
sudo authyo-configure --status
| Symptom | Cause & fix |
|---|---|
authyo-configure: command not found | The package didn't install. Re-run the install step (ยง3). On .rpm, make sure you used dnf/yum, not rpm -i. |
| Enrollment key says "invalid / expired" | The ENRL- key is one-time and lasts 60 min. Get a fresh one from the website (ยง4). |
| No OTP arrives during login, but it lets you in anyway | The OTP channel is misconfigured. The log shows SENDOTP_..._ERR ... invalid sender address. Re-run sudo authyo-configure and set the contact to Email with a real address. (SMS may need sender setup in Authyo.) |
| Login hangs or "cannot reach Authyo" | The server can't reach app.authyo.io. Test: curl -I https://app.authyo.io. Fix the server's internet/firewall/DNS. |
| I'm locked out / OTP won't come | Use your first (still-open) SSH window, OR log in as an exempt user (ยง5 step 6, password-only). To fully undo: sudo cp /etc/pam.d/sshd.authyo-backup-* /etc/pam.d/sshd (restores the original SSH config, removing the guard). |
| Deactivate didn't take effect | It refreshes on a timer (up to 15 min). Force it: sudo systemctl start authyo-gatekeeper-heartbeat.service, then try logging in again. |
Emergency "remove the guard completely":
sudo authyo-configure --uninstall # unhooks pam_authyo from SSH (restores backup)
Your SSH logins go back to normal (password-only) immediately.
# Install (Ubuntu/Debian)
sudo dpkg -i authyo-gatekeeper_1.1.5-1_amd64.deb && sudo apt-get install -f -y
# Install (RHEL/Rocky/Alma/Amazon)
sudo dnf install -y ./authyo-gatekeeper-1.1.5-1.x86_64.rpm
authyo-configure --version # confirm 1.1.5
sudo authyo-configure # activate (paste ENRL key) + set contact
sudo authyo-configure --test # send a test OTP
sudo authyo-configure --status # show current config
sudo tail -n 20 /var/log/authyo/gatekeeper.log # see what happened at login
# Deactivate test
sudo systemctl start authyo-gatekeeper-heartbeat.service # force refresh now
# Undo everything
sudo authyo-configure --uninstall # remove guard from SSH
Questions? Contact your Authyo representative. Keep your first SSH session open
while testing โ it's your safety net.