Einleitung
Die Authentifizierung an einem Knoten bei einer ssh-Verbindung erfolgt normalerweise per Passwort. Der root-Account wird bekanntlich gerne angegriffen und das Passwort für den Knoten muss vielen Leuten bekannt sein, beide Problem können mit der Umsetzung einer SSH Public Key Authentifizierung entschärft werden.
Erzeugen eines Schlüssels auf dem Rechner
Falls noch nicht vorhanden, muss ein Schlüssel für das System erstellt werden. Dies lässt sich nur als root machen.
root@mobile05# ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /root/.ssh/id_dsa.pub. The key fingerprint is: b1:98:14:03:b4:d5:52:c3:32:58:7a:1b:43:97:56:67 root@mobile05.bernewireless.net
Die Identifikation wird in ~/.ssh/id_dsa und der Public Key in ~/.ssh/id_dsa.pub gespeichert. Das Passwort muss leer gelassen werden, sonst funktioniert das Einloggen ohne Passwort nicht. Dies stellt zwar allgemein ein Sicherheitsrisiko dar, denn wenn der Schlüssel gestohlen wird, kann damit ohne weiteres auf die Ressource zugegriffen werden. In unserem Fall überwiegen die Vorteile, in anderen Fällen ist aber zwingend von dieser Vorgehensweise abzuraten und ein Passwort zu setzen.
Kopieren des Schlüssels auf den WRT54Gx
Der öffentliche Teil des Schlüssels, id_dsa.pub, muss nun auf den WRT54Gx in das File "authorized_keys" kopiert werden.
root@mobile05# cat ~/.ssh/id_dsa.pub | ssh [IP-Adresse des WRT54Gx] "cat >>/etc/dropbear/authorized_keys" The authenticity of host '10.247.21.1 (10.247.21.1)' can't be established. DSA key fingerprint is 88:54:bf:32:7d:31:c6:45:c4:c0:2e:25:d5:27:2g:3c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.247.21.11' (DSA) to the list of known hosts. root@10.247.21.1's password:
Die Abfrage zum Hinzufügen zur Liste der bekannten Hosts kommt nur beim ersten Mal, denn danach ist der Router eingetragen. Nach der Eingabe des Passwortes wird der Schlüssel eingetragen und der Zugriff erfolgt nun über den Public Key.
Löschen der Schlüssel auf dem WRT54Gx
Wenn man den Überblick verloren hat über die gespeicherten Schlüssel auf dem WRT54Gx, sollte die Datei authorized_keys gelöscht und der eigenen Schlüssel neuhinzugefügt werden.
root@wrt$ rm /etc/dropbear/authorized_keys