KeyHelp: Zwei-Faktor-Anmeldung mit TOTP und Passkeys für Admins und Kunden einrichten
So richten Administratoren und Kunden in KeyHelp die Zwei-Faktor-Anmeldung mit einer Authenticator-App ein, wie streng die Codes geprüft werden, wie root den Zugang wiederherstellt und was bei Passkeys zu beachten ist.
Geprüft am 01.10.2026 · für KeyHelp 26.1.1
Mit KI erstellt – redaktionelle Prüfung ausstehend
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Ein gestohlenes Passwort reicht für die Übernahme eines KeyHelp-Kontos, solange keine Zwei-Faktor-Anmeldung aktiv ist. KeyHelp bringt dafür im Profil jedes Benutzers zwei Bausteine mit: Einmalcodes aus einer Authenticator-App (TOTP) und die „Web-Authentifizierung“ mit FIDO2-Schlüsseln, also Hardware-Keys oder Passkeys. Diese Anleitung zeigt die Einrichtung für Administratoren und Kunden, wie sich die Anmeldung danach verhält und wie Sie als root wieder hineinkommen, wenn das Smartphone weg ist. Sie richtet sich an Administratoren eines Servers wie in KeyHelp installieren und absichern. Getestet haben wir mit KeyHelp 26.1.1 auf Debian 12.
Voraussetzungen
- Ein KeyHelp-Server, getestet mit KeyHelp 26.1.1 (Build 3698) auf Debian 12.15.
- Eine Authenticator-App auf dem Smartphone oder ein Passwortmanager mit TOTP-Funktion. Im Test haben wir die Codes mit einem kleinen Python-Skript nach RFC 6238 und mit
oathtoolaus dem angezeigten Schlüssel erzeugt. - Eine korrekte Serverzeit, weil TOTP-Codes zeitbasiert sind.
- SSH-Zugang als root für die Wiederherstellung.
Schritt 1: TOTP für das Administratorkonto einrichten
Öffnen Sie oben rechts „Profil“. Die Seite „Profileinstellungen“ hat beim Administrator die Reiter „Konto-Einstellungen“, „Zwei-Faktor-Authentifizierung“ und „Web-Authentifizierung“. Im zweiten Reiter erklärt KeyHelp: „Wenn aktiviert, benötigen Sie zusätzlich zu Ihrem Benutzernamen und Passwort einen Authentifizierungscode, um sich anzumelden.“
Setzen Sie den Haken „Aktiviert“. Darunter erscheinen ein QR-Code und der Hinweis „Oder geben Sie den folgenden Schlüssel ein.“ mit einem 24-stelligen Schlüssel in Vierergruppen. KeyHelp warnt ausdrücklich: „Achtung! Stellen Sie sicher, dass Sie ein Backup Ihres geheimen Schlüssels haben, für den Fall, dass Sie den Zugriff auf Ihr Gerät verlieren sollten.“ Speichern Sie den Schlüssel deshalb zusätzlich im Passwortmanager. Fotografieren oder teilen Sie ihn nicht: Wer ihn hat, erzeugt dieselben Codes.
Scannen Sie den QR-Code mit der App und tragen Sie den angezeigten Code in „Geben Sie den sechs-stelligen Authentifizierungscode ein“ ein. Dann „Speichern“.
Zuerst haben wir bewusst den falschen Code 000000 eingegeben. KeyHelp lehnte ab mit „Der Authentifizierungscode ist nicht gültig.“, die Zwei-Faktor-Anmeldung blieb aus. Mit dem richtigen Code wurde sie aktiviert. Danach zeigt der Reiter weder QR-Code noch Schlüssel, sondern nur noch den Knopf „Neue App einrichten“.

Verifizieren: In der KeyHelp-Datenbank hat das Konto jetzt einen Eintrag in users_two_factor_auth mit der Methode app:
mysql -N -e "select id_user, method, length(secret) from keyhelp.users_two_factor_auth"
1 app 126
Die Benutzer-ID 1 ist keyadmin, ID 2 der Kunde kunde1. Das Geheimnis liegt dort als 126 Zeichen langer Wert, also nicht als der 24-stellige Schlüssel aus dem Dialog.
Schritt 2: Die Anmeldung mit und ohne Code prüfen
Nach Benutzername und Passwort leitet KeyHelp jetzt auf eine zweite Seite weiter. Für die Prüfung haben wir die Anmeldung vom Server selbst mit curl durchgespielt. Nach dem Passwort landete die Sitzung auf index.php?page=login_two_factor mit dem Feld „Authentifizierungscode“ und dem Knopf „Identität bestätigen“.
Mit dem falschen Code 123456 blieb die Seite stehen:
--- nach Code 123456: URL=?page=login_two_factor
server.example.de | KeyHelp
Die Zwei-Faktor-Authentifizierung ist fehlgeschlagen.
Mit dem aktuellen Code aus oathtool ging es zum Dashboard:
--- nach Code totp: URL=index.php?page=admin_dashboard
server.example.de | KeyHelp
Administrations-Bereich
Verifizieren: Melden Sie sich in einem privaten Browserfenster neu an. Nach dem Passwort muss die Seite „Authentifizierungscode“ erscheinen.

Schritt 3: Wie streng prüft KeyHelp die Codes?
Die von KeyHelp angenommenen Codes entsprachen im Test dem üblichen 30-Sekunden-Takt von oathtool. Für den Kunden kunde1 haben wir um 19:55:05 UTC mit oathtool verschiedene Codes erzeugt und jeweils eine vollständige Anmeldung versucht:
oathtool --totp -b "$K"
oathtool --totp -b "$K" -N "now - 30 sec"
oathtool --totp -b "$K" -N "now - 90 sec"
oathtool --totp -b "$K" -N "now + 30 sec"
1. aktueller Code
--- nach Code 758210: URL=index.php?page=client_dashboard
2. derselbe Code erneut
--- nach Code 758210: URL=index.php?page=client_dashboard
3. Code von vor 30 s
--- nach Code 493411: URL=index.php?page=client_dashboard
4. Code von vor 90 s
--- nach Code 516782: URL=?page=login_two_factor
Die Zwei-Faktor-Authentifizierung ist fehlgeschlagen.
5. Code in 30 s
--- nach Code 815691: URL=index.php?page=client_dashboard
KeyHelp akzeptierte also neben dem aktuellen auch den vorigen und den nächsten Code, ein 90 Sekunden alter Code wurde abgelehnt. Codes von vor oder in 60 Sekunden haben wir nicht geprüft. Auffällig: In KeyHelp 26.1.1 funktionierte derselbe Code im Test bei zwei getrennten Anmeldungen kurz hintereinander. Ein abgefangener Code war damit innerhalb seiner Gültigkeit erneut verwendbar, allerdings nur zusammen mit dem richtigen Passwort. Eine Einstellung, die das verhindert, haben wir im Panel nicht gefunden.
Verifizieren: Weil KeyHelp nur Codes aus einem engen Zeitfenster annahm, muss die Serverzeit stimmen. Prüfen Sie sie mit timedatectl, im Test stand dort „Time zone: Etc/UTC (UTC, +0000)“.
Schritt 4: Zwei-Faktor-Anmeldung für Kunden
Kunden finden dieselbe Funktion in ihrem eigenen „Profil“, dort mit den Reitern „Konto-Einstellungen“, „Kontaktdaten“, „Zwei-Faktor-Authentifizierung“ und „Web-Authentifizierung“. Die Einrichtung läuft identisch. Im Test hat kunde1 danach einen eigenen Eintrag:
1 app
2 app
Als Administrator haben wir keine Möglichkeit gefunden, die Zwei-Faktor-Anmeldung für Kunden vorzuschreiben oder einzusehen. Die Bearbeitungsseite des Kunden unter „Benutzerverwaltung“ enthielt mit ihren Reitern von „Allgemein“ bis „Erweiterte Einstellungen“ keinen Hinweis darauf, und die Seite „Konfiguration“, „Login & Sitzungen“ bietet Brute-Force-Schutz, Sitzungs-Leerlaufzeit, IP-Bindung und eine IP-Beschränkung nur für Administratorkonten, aber keine Pflicht zur Zwei-Faktor-Anmeldung. Bitten Sie Ihre Kunden daher aktiv, sie einzurichten.
Verifizieren: Die Abfrage select id_user, method from keyhelp.users_two_factor_auth zeigt für jedes Konto mit aktiver Zwei-Faktor-Anmeldung eine Zeile. So sehen Sie als root, welche Kunden sie nutzen.
Schritt 5: Zugang wiederherstellen, wenn das Gerät fehlt
Backup-Codes gibt es in dem getesteten Dialog nicht, die Sicherung ist der geheime Schlüssel. Fehlt auch der, hilft root auf dem Server. Der Befehl keyhelp-toolbox (oder keyhelp toolbox) öffnet ein Menü, das ausdrücklich für den Fall gedacht ist, dass man keinen Zugang zur Weboberfläche mehr hat:
keyhelp-toolbox
5) Disable maintenance mode
6) Disable login restrictions for administrator accounts
7) Disable two-factor authentication
8) Clear template cache
Punkt 7 listet alle Konten mit aktiver Zwei-Faktor-Anmeldung:
Here you can disable the two-factor authentication for a specific KeyHelp
account.
Enter the number that is displayed next to the desired username to remove
two-factor authentication for that user.
- Available actions ------------------------------------------------------
1) keyadmin
2) kunde1
Nach Auswahl von kunde1 war dessen Eintrag in der Datenbank verschwunden, nach Auswahl von keyadmin auch dieser. Ein erneuter Aufruf meldete „Currently no account uses two-factor authentication.“, und beide Konten kamen mit dem Passwort allein direkt auf ihr Dashboard:
--- nach Passwort: URL=index.php?page=client_dashboard
--- nach Passwort: URL=index.php?page=admin_dashboard
Ein zweiter Weg für root ist keyhelp login keyadmin: Die erzeugte Einmal-URL führte im Test trotz aktiver Zwei-Faktor-Anmeldung ohne Codeabfrage direkt auf das Dashboard. Beides zeigt: Die Zwei-Faktor-Anmeldung schützt die Anmeldung am Panel. Mit root-Zugang kamen wir im Test auf beiden Wegen ohne Code hinein. Das ist keine Lücke für Angreifer von außen, denn beide Wege setzen eine root-Shell auf dem Server voraus. Es heißt aber: Wer root hat, braucht keinen zweiten Faktor, der SSH-Zugang braucht also eigenen Schutz.
Verifizieren: Nach dem Zurücksetzen richtet der Benutzer die Zwei-Faktor-Anmeldung mit einem neuen Schlüssel ein. Den alten Schlüssel löschen Sie aus der App.
Schritt 6: Passkeys über „Web-Authentifizierung“
Der Reiter „Web-Authentifizierung“ beschreibt die Funktion als Alternative zum Passwort: „Wenn aktiviert, benötigen Sie nur Ihren Benutzernamen und einen FIDO2-zertifizierten Hardware- oder Softwareschlüssel als Authentifikator, um sich anzumelden.“ Über „Authentifikator hinzufügen“ wird ein Schlüssel registriert, die Anmeldeseite bietet dafür „Anmelden mit Authentifikator“.
Diesen Teil konnten wir nicht vollständig testen. KeyHelp meldet beim Registrieren den Server-Hostnamen als Kennung, im Test server.example.de. Unser Testbrowser erreichte das Panel nur über einen anderen Namen und nutzte einen virtuellen Authentifikator. Die Registrierung scheiterte, laut Meldung an der Abweichung zwischen dieser Kennung und dem aufgerufenen Namen:
Ein Fehler ist aufgetreten.
The relying party ID is not a registrable domain suffix of, nor equal to the current domain.
Für Passkeys sollten Sie das Panel deshalb über genau den Hostnamen aufrufen, den KeyHelp als Kennung übermittelt. Ob Registrierung, Anmeldung und Wiederherstellung mit Passkeys dann funktionieren, haben wir nicht geprüft.
Verifizieren: Beim Registrieren übermittelt KeyHelp den Namen der Gegenstelle. Im Test lautete er „KeyHelp WebAuthn“ mit der Kennung server.example.de, also dem Hostnamen des Servers (hostname -f lieferte ebenfalls server.example.de). Gespeicherte Authentifikatoren gehören nach dem Datenbankschema in die Tabelle users_webauthn_authenticators, die nach dem Versuch 0 Einträge hatte.
Typische Fehler
- „Der Authentifizierungscode ist nicht gültig.“ beim Einrichten: Code abgelaufen oder falsch abgetippt. Neuen Code aus der App nehmen.
- „Die Zwei-Faktor-Authentifizierung ist fehlgeschlagen.“ bei der Anmeldung: falscher oder zu alter Code. Im Test wurde ein 90 Sekunden alter Code abgelehnt.
- Schlüssel nicht gesichert: Nach dem Speichern zeigt KeyHelp ihn nicht mehr an. Bei Verlust bleibt nur „Neue App einrichten“ (wenn noch angemeldet) oder die Toolbox.
- Passkey-Registrierung scheitert mit „Ein Fehler ist aufgetreten.“ und dem englischen Hinweis auf die „relying party ID“: Im Test wurde das Panel nicht über den Server-Hostnamen aufgerufen.
- Toolbox ohne Eingabe gestartet: In einem Skript ohne Tastatureingabe lief
keyhelp-toolboxim Test in einer Endlosschleife der Eingabeaufforderung. Starten Sie es nur interaktiv.
Häufige Fragen
Welche Apps funktionieren?
KeyHelp nennt im Dialog Authy, LastPass Authenticator und Google Authenticator. Im Test funktionierten Codes, die wir mit oathtool nach dem TOTP-Standard aus dem Schlüssel erzeugt haben. Apps haben wir nicht getestet.
Kann der Administrator die Zwei-Faktor-Anmeldung eines Kunden abschalten?
Nicht im Panel, das wir geprüft haben. Mit root-Zugang geht es über keyhelp-toolbox, Punkt 7.
Schützt die Zwei-Faktor-Anmeldung auch E-Mail, FTP oder Datenbanken?
Wir haben nur die Anmeldung am Panel geprüft. Postfächer, FTP-Benutzer und Datenbanken haben eigene Zugangsdaten, die wir in diesem Test nicht betrachtet haben.
Testumfang
Getestet haben wir in KeyHelp 26.1.1 die TOTP-Einrichtung für Administrator und Kunde, Anmeldung mit falschem, gültigem und altem Code sowie das Zurücksetzen per keyhelp-toolbox. Die Anmeldung haben wir per curl vom Server selbst durchgespielt, nicht von außen. Auffällig: Ein gültiger Code ließ sich zweimal verwenden, und eine als root mit keyhelp login erzeugte Einmal-URL umging die Abfrage. Passkeys (Registrierung scheiterte, siehe Schritt 6), echte Authenticator-Apps und die REST-API haben wir nicht geprüft. Richten Sie die Zwei-Faktor-Anmeldung mindestens für alle Administratorkonten ein.
Fazit
Die Zwei-Faktor-Anmeldung per TOTP ist in KeyHelp mit wenigen Klicks eingerichtet und wirkt sofort: Mit dem Passwort allein kam die Anmeldung im Test nicht über die Code-Abfrage hinaus. Sichern Sie den Schlüssel beim Einrichten, und kennen Sie den Notausgang über keyhelp-toolbox. Da wir im Panel keine Möglichkeit fanden, Kunden zur Zwei-Faktor-Anmeldung zu verpflichten, lohnt ein Hinweis in Ihrer Willkommensmail. Passkeys konnten wir nicht testen. Die Fehlermeldung im Test spricht dafür, das Panel dafür über den echten Server-Hostnamen aufzurufen.


