Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge

Unitas Network GmbH

This Slogan Viewlet registered to Chameleon Theme
Sie sind hier: Startseite / Wissenswertes / Anleitungen / Smartcards / SSH-Login mit OpenPGP Card

SSH-Login mit OpenPGP Card

Es wird beschrieben, wie mittels OpenPGP Card ein sicherer Login per SSH erfolgen kann.

Voraussetzungen

Voraussetzung ist eine einsatzbereite OpenPGP Card bzw. ein Crypto Stick. Die Einrichtung wird an einem Linux-PC (Gentoo) mit aktuellem GnuPG und OpenSSH geschrieben.

Einrichtung

Die Konfigurationsdatei des GPG-Agents muß folg. enthalten:

~ $ cat ~/.gnupg/gpg-agent.conf 
enable-ssh-support

Das Auslesen des Schlüssels erfolgt mit:

$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuLFtX2O9J5vCtSEpQJtpE6UVKmNC/Wx3NREnFNW5nyc9AB0yOl3B5fj+2KLk8wPx4w/0A9R0cK4JhdtiEA3eblKufD3TrJ5IJCwM7xMa1KpWgz65ELJ876jG1K3uIJo3VUe2JL2nse58m4CkCfPRpKPXZahhZtrAse3EHdp0Lmtx+Ha6e3h50K+aASniJL9rpAPV6AxoFhbm2wk7j+BlL65Fciso8i6e1P6/JMjNMfZDOQvMuXafkgJPLhaISf5ZsyryFnqElsz6eA8uWvv2g9CBH4X2Iu9mrgc02oXAFNlbrut3Omqm3zybexlV5aKe79Lt7CSKyQLn3hqOzO3PT cardno:0005000010B2

Dieser Schlüssel (die komplette Zeile) wird auf dem Zielhost in die Datei ~/.ssh/authorized_keys kopiert (Homedirectory des Benutzers, als welcher man sich anmelden will).

Nachdem der Login mit dem SSH-Key der OpenPGP Card erfolgreich getestet wurde, kann das Paßwort des Benutzers gesperrt werden:

$ passwd -l <Benutzername>

Anschließend ist nur noch ein Login per SSH mit der OpenPGP Card möglich.

sudo mit der OpenPGP Card

Nach dem SSH-Login über die  OpenPGP Card als normaler Benutzer kann man Befehle, welche root-Rechte erfordern, mittels "sudo" ausführen. Dazu müssen folgende Voraussetzungen erfüllt sein (es gibt natürlich auch andere Wege):

  • Die Gruppe "wheel" muß mittels alle Befehle ausführen dürfen. Dazu aktiviert man in /etc/sudoers die (bei Gentoo) bereits vorhandene, aber auskommentierte Zeile:
%wheel ALL=(ALL) ALL

Damit können Mitglieder der Gruppe "wheel" per "sudo" beliebige Kommandos nach nochmaliger Eingabe ihres Paßwortes mit root-Rechten ausführen.
Hinweis: Das Editieren von /etc/sudoers sollte nicht direkt, sondern nur mit dem Befeht "visudo" erfolgen.

  • Der Benutzer muß Mitglied der Gruppe "wheel" sein. Das erreicht man mit folgendem Befehl (als root):
# usermod -aG wheel <Benutzername>

Zum Ausführen von Kommandos mit root-Rechten per sudo muß der Benutzer nun sein Paßwort eingeben, welches er aber gar nicht mehr besitzt. Damit dies auch über den Schlüssel der OpenPGP Card erfolgt, muß ein neues PAM-Modul installiert werden:

# emerge -av pam_ssh_agent_auth

In /etc/pam.d/sudo wird dies nun durch Hinzufügen der ersten Zeile aktiviert:

# nano -w /etc/pam.d/sudo

auth [success=2 default=ignore] pam_ssh_agent_auth.so file=~/.ssh/authorized_keys
auth    include         system-auth
account include         system-auth
session include         system-auth

Anschließend wird in /etc/sudoers folgende Zeile einfügt:

Defaults   env_keep += SSH_AUTH_SOCK

Damit wird der vom SSH-Agent genutzte Socket auch in die root-Umgebung übergeben.

Das Ganze erfordert die Nutzung eines SSH-Agents auf Clientseite. Dessen Verbindung muß bei der Verbindungsaufnahme durch den Parameter "-A" mit übergeben werden. Die SSH-Verbindung wird also z.B. so gestartet:

$ ssh -A <Benutzer>@<Server>

Funktioniert das alles, kann auch für root das Paßwort entfernt und allgemein der SSH-Zugang mit Paßwörtern gesperrt werden.

Artikelaktionen