SSH-Schlüssel austauschen für ein passwortlosen Login

SSH arbeitet mit einem Asymmetrischen Kryptosystem. Was das bedeutet und wie es arbeitet wird auf Wikipedia sehr schön beschrieben: http://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem

Kurz gesagt, bedeutet Asymmetrisches Kryptosystem, dass die Verschlüsselungs- und Entschlüsselungsalgorythmen sich unterscheiden.

Wenn man sich sehr oft auf den selben Maschinen einloggen muss, dann kann es Sinn machen, auf der Zielmaschine seinen öffentlichen Schlüssel zu hinterlegen. Dann braucht man nicht immer das Passwort eingeben um auf die Maschine zu kommen.

Es gibt drei Schlüssel-Typen:

  1. RSA1, dieser Schlüsseltyp ist veraltet und ist erwiesenermaßen angreifbar;
  2. RSA2 wird zur Zeit im allgemeinen als RSA bezeichnet, dieser Schlüssel kann eine beliebige Länge aufweisen;
  3. DSA, dieser Schlüssel darf in aktueller Version nur eine Länge von max. 1024 Bit aufweisen, ältere SSH-Versionen konnten noch beliebig lange DSA-Schlüssel generieren (DSS); Digital Signature Algorithm (DSA) ist ein Standard der US-Regierung;

Schlüsselpaar generieren

RSA-Default-Schlüssel (mit 4096 Bit Länge) generieren:

ssh-keygen -t rsa -b 4096

RSA-Schlüssel für sonstige Verwendungen generieren

ssh-keygen -t rsa -b 4096 -f .ssh/id_rsa_sonstiges

öffentlichen Schlüssel verteilen:

Natürlich muss „fritz@rechner“ gegen Ihre individuellen Zugangsdaten ausgetauscht werden!

cat .ssh/id_rsa.pub | ssh fritz@rechner 'umask 077; mkdir -p .ssh; cat >> .ssh/authorized_keys'

Konfiguration anpassen

vi /etc/ssh/sshd_config
      PermitRootLogin without-password
      #PasswordAuthentication no
      ChallengeResponseAuthentication no
      #UsePAM yes

OpenSSH-Schlüssel ins Putty-Format konvertieren

Es ist nur möglich den privaten OpenSSH-Schlüssel zu konvertieren! Das ist aber keine Einschränkung, da der öffentliche Schlüssel aus dem privaten Schlüssel erzeugt werden kann, was Putty auch tut.

in OpenSSH erzeugen

Hier wird beschrieben, wie man mit OpenSSH einen privaten und öffentlichen SSH-Schlüssel erzeugt und den öffentlichen Schlüssel dann in PuTTY einbindet.

Damit man den unter BSD/Linux erzeugten privaten OpenSSH-Schlüssel (z.B.: id_rsa) verwenden kann, muss der private OpenSSH-Schlüssel in das PuTTY Format konvertiert werden. Das liegt daran, dass das Format für SSH-Schlüssel nirgendwo standardisiert ist.

Nachdem die private OpenSSH-Schlüssel-Datei auf dem Windoofs-Rechner kopiert wurde, starten Sie PuTTYgen und rufen Sie ConversionsImport key auf. Navigieren Sie zur privaten OpenSSH-Schlüssel-Datei und geben Sie die Passphrase ein, die sie beim Erzeugen des Schlüssels gewählt haben. Schließlich klicken Sie auf Save private key und speichern den OpenSSH-Schlüssel jetzt in der Datei id_rsa.ppk im Putty-Format ab. In der PPK-Datei liegen dann der private und der öffentliche Schlüssel.

Jetzt haben wir drei OpenSSH-Schlüssel-Dateien:

  1. auf BSD/Linux erzeugt:
    1. id_rsa (privater OpenSSH-Schlüssel)
    2. id_rsa.pub (öffentlicher OpenSSH-Schlüssel)
  2. auf Windoofs konvertiert:
    1. id_rsa.ppk (beide OpenSSH-Schlüssel im Putty-Format)

in PuTTY erzeugen

Hier wird beschrieben, wie man mit PuTTY einen privaten und öffentlichen SSH-Schlüssel erzeugt und den öffentlichen Schlüssel dann aus PuTTY im OpenSSH-Format entnimmt.

Nachdem Sie PuTTYgen gestartet haben und unten das Protokoll (SSH-2 RSA) sowie die Schlüsselgröße (z.B.: 4096) eingegeben haben, drücken müssen Sie den Knopf “Generate“ drücken.

Will man den öffentlichen Schlüssel im OpenSSH-Format haben, dann muss man die Zeile (umgebrochen) aus dem oberen Feld per „cut and past“ nehmen. Will man ihn im PuTTY-Format haben, dann muss man ihn mit dem Knopf “Save public key“ in eine Datei exportieren.

Zur Entstehung

  1. 1995 - Tatu Ylönen (Universität von Helsinki) entwickelt SSH als Reaktion auf eine Passwort-Sniff-Attacke. 6 Monate nach veröffentlichung bereits von 20'000 Personen in 50 Ländern benutzt.
  2. 1998 - SSHv2 durch SSH Communications Security veröffentlicht (unfrei).
  3. Dez 1999 - OpenSSH 1.2.2 basierend auf SSH 1.2.12 in der Release 2.6 von OpenBSD veröffentlicht.
  4. Juni 2000 - OpenSSH 2.0 mit OpenBSD 2.7 ausgeliefert.
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki