SSH mit Termius in iOS mit dem Yubikey authentifizieren

SSH mit Termius in iOS mit dem Yubikey authentifizieren

Ich verwende für die Authentifizierung per SSH eigentlich gerne den Yubikey im Smartcard-Mode (PIV). Allerdings habe ich unter iOS keine App gefunden, die das unterstützt. Die App Termius unterstützt dagegen die Yubico OTP Authentifizierung. Daher habe ich mir diese mal genauer angeschaut.

Einrichten des Yubikey

Ein fabrikneuer Yubikey hat das notwendige Verfahren bereits eingerichtet, hier sind keine Schritte notwendig. Hat man jedoch den notwendigen Slot (Kurzer oder Langer Tastendruck) umprogrammiert, muss man das Verfahren neu einrichten. Das geht unter Windows zum Beispiel wie folgt:

  • Yubikey Manager installieren, z.B. via choco install yubikey-manager -y

  • Dort den OTP Support aktivieren

  • Einen Slot für Yubico OTP aktivieren…

  • …und die angezeigten/generierten Informationen notieren, insbesondere die Public ID

API Client ID beziehen

Mit dem eingerichteten Yubikey lässt sich auf der Yubikey API Webseite ein API Key erzeugen. Es reicht die Erzeugung eines API-Keys auch wenn der Einsatz mehrerer Yuikeys geplant ist.

Einrichtung auf dem SSH Server

  • Auf dem Server das PAM Modul installieren
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install libpam-yubico
  • In /etc/pam.d/sshd oben die folgende Zeile ergänzen, dabei die generierte API Client ID hinterlegen:
    • auth sufficient pam_yubico.so id=[Your API Client ID]
  • Datei ~/.yubico/authorized_yubikeys anlegen mit einer Zeile, dabei die Public ID(s) der eigenen Yubico-Keys dort mit Doppelpunkten getrennt hinterlegen

Einrichtung auf dem SSH Client

Termius benötigt keine weitere Einrichtung, beim Login ist lediglich “NFC” auszuwählen und der Yubico an das iPhone gehalten zu werden. Fertig!