Yubikey NEO

SSH Zugang mit Yubikey und OTP absichern

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:

  1. Statisches Password
  2. One-Time Password
  3. Challenge-Response
  4. NFC (nur bei Yubikey NEO)
  5. FIDO U2F
  6. OATH – HOTP
  7. OATH – TOTP
  8. usw.

Yubikey NEO
Yubikey NEO
Hier bei Amazon zu bestellen:  Yubikey NEO
Lauffähig ist der Yubikey auf allen Plattformen wie Windows, MAC, Linux usw. ohne Treiberinstallation, da dieser als Tastatur erkannt wird.

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:

  1. /etc/pam.d/common-auth
  2. /etc/pam.d/sshd
  3. /etc/ssh/sshd_config
  4. /etc/pam.d/yubi-auth (erstellen)
  5. /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 !

 

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

Ein Gedanke zu “SSH Zugang mit Yubikey und OTP absichern

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert