Verwenden von Yubikey für Sudo über SSH-Sitzung

10

Ich verwende derzeit Kryptonite , um den privaten Schlüssel, den ich für SSH verwende, in Hosts zu schützen. Dies funktioniert gut, außer wenn ich zu root eskalieren muss.

Wenn ich sudoeine zufällig generierte Zeichenfolge mit 20 Zeichen aus meinem Kennwortmanager kopieren muss, überprüfen Sie, ob ich wirklich an der Kennwortabfrage bin, und fügen Sie sie ein, damit mein Befehl ausgeführt wird.

Ich würde viel lieber meinen Yubikey verwenden, um mich zu authentifizieren sudo. Ich kann 101 Anleitungen dazu finden, sudowenn ich auf lokalen Hosts mit dem an meine lokalen Hosts angeschlossenen Yubikey arbeite. Wie kann ich dies tun, wenn ich sudoauf einem Remote-Host über SSH mit dem an meinen lokalen Computer angeschlossenen Schlüssel arbeiten möchte ?

Sowohl auf lokalen als auch auf Remote-Hosts werden aktuelle Linux / GNU-Distributionen ausgeführt, insbesondere RHEL / Fedora, wenn dies einen Unterschied macht.

thomasfedb
quelle
AFAIK a Yubikey fungiert weiterhin als Tastatur. Durch einfaches Drücken der Taste wird das Einmalkennwort "eingegeben", wo immer Sie mit dem Mauszeiger darauf zeigen. Dies funktioniert auch in einem Terminalfenster über SSH zur Eingabeaufforderung sudo password von einem Remote-Server. .
HBruijn
Kryptonite sieht fantastisch aus, aber wussten Sie, dass Sie gpg zur Authentifizierung über ssh verwenden und diesen Schlüssel dann auf Ihrem yubikey speichern können? Entwickler.yubico.com/PGP/SSH_authentication
andsens

Antworten:

7

Es pam_ssh_agent_authgibt genau das, was Sie brauchen. Dieses Paket ist sowohl für Fedora als auch für RHEL verfügbar, sodass das Einrichten und Installieren sehr einfach ist:

yum install pam_ssh_agent_auth

Fügen Sie Ihrem hinzu /etc/sudoers:

Defaults    env_keep += \"SSH_AUTH_SOCK\"

Setzen Sie Ihren ssh-public-Schlüssel auf /etc/security/authorized_keys(erhalten Sie ihn beispielsweise von yubikey mit ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so)

Fügen Sie am Anfang eine Zeile hinzu /etc/pam.d/sudo:

auth       sufficient   pam_ssh_agent_auth.so

Dann fügen Sie einfach die pkcs11-Bibliothek zu Ihrer hinzu ssh-agentund können sudoohne Kennwort ausgeführt werden (Authentifizierung mit dem Schlüssel auf dem Token):

ssh-add -s /usr/lib64/pkcs11/opensc-pkcs11.so
sudo -i

Dieser Vorgang wird auch auf der Handbuchseite für beschrieben pam_ssh_agent_auth.

Beachten Sie, dass die Schlüssel auf dem Yubikey zuvor generiert werden müssen, dies ist jedoch bereits in der Yubico-Dokumentation beschrieben.

Jakuje
quelle