Oft ist es nötig einen SSH-Zugang abzusichern. Dies kann mit Public-Key Methoden oder mit One-Time-Password (OTP) Tools bewerkstelligt werden. Die hier vorgestellte OTP-Methode mit Yubikey wurde auf dem Raspberry Pi umgesetzt.
Yubikey ist ein Hardware Token der sehr viele Passwort Mechanismen kann wie zum Beispiel:
- Statisches Password
- One-Time Password
- Challenge-Response
- NFC (nur bei Yubikey NEO)
- FIDO U2F
- OATH – HOTP
- OATH – TOTP
- usw.
Mit dem Yubikey NEO sichern wir nun unseren SSH-Zugang für den Raspberry PI ab.
$ sudo apt-get install libpam-yubico
Nun müssen 5 Dateien bearbeitet bzw. erstellt werden:
- /etc/pam.d/common-auth
- /etc/pam.d/sshd
- /etc/ssh/sshd_config
- /etc/pam.d/yubi-auth (erstellen)
- /etc/ssh/yubikey_mappings (erstellen)
Hier den Eintrag „try_first_pass“ hinzufügen:
/etc/pam.d/common-auth auth [success=1 default=ignore] pam_unix.so try_first_pass nullok_secure
Hier den Eintrag „auth include …“ hinzufügen:
/etc/pam.d/sshd # PAM configuration for the Secure Shell service # Read environment variables from /etc/environment and # /etc/security/pam_env.conf. auth required pam_env.so # [1] # In Debian 4.0 (etch), locale-related environment variables were moved to # /etc/default/locale, so read that as well. auth required pam_env.so envfile=/etc/default/locale auth include yubi-auth
Anpassung SSHD-Konfiguration
nano /etc/ssh/sssd_config # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords PasswordAuthentication yes /etc/init.d/ssh restart
Erstellen der Datei „yubi-auth“ im Verzeichnis „/etc/pam.d“. Die ID für den Yubikey erhält man hier https://upgrade.yubico.com/getapikey/ und bei Eingabe der Daten wird eine „Client ID“ angezeigt. Diese muss in die unten genannte Datei eingetragen werden.
/etc/pam.d/yubi-auth /etc/pam.d/yubi-auth auth required pam_yubico.so id=12345 authfile=/etc/ssh/yubikey_mappings
Erstellen der Keys für die Benutzer, welche Yubikey OTP nutzen sollen. Stecke nun den Yubikey an und starte folgendes kleine Programm
read -p "Enter OTP: " s && echo ${s:0:12} Drücke nun den Yubikey so, dass er das OTP-Password ausgibt: Enter OTP: abcdefghijklmneonoekkdfgirtougiugrthrurh abcdefghijkl <--- Kopiere diese Ausgabe
Erstellen der Zugänge für Benutzer mit einem Yubikey:
/etc/ssh/yubikey_mappings meinuser:abcdefghijkl <-- Einfügen aus der Zwischenablage pi:abcdefghijkl <-- Einfügen aus der Zwischenablage
Fertig !
Die Anmeldung erfolgt dann nun wie folgt:
ssh pi@192.168.1.1
pi@192.168.1.1’s password: <Eingabe lokales Passwort><Drücken von Yubikey für das One-Time-Passwort> KEIN ENTER nötig
Hinweis: Nicht Passwort eingeben und Enter drücken, dann Yubikey drücken – GEHT NICHT !
…
Ein Gedanke zu “SSH Zugang mit Yubikey und OTP absichern”