Diese Anleitung sollte grundsätzlich auf allen Linux Distributionen funktionieren. Da man in der Test- und Entwicklungsphase sehr oft per SSH auf den Raspberry zugreifen muss, macht es Sinn sich ohne ständig User und Passwort eingeben zu müssen, einzuloggen. Hierfür benötigt man zuerst mal Putty und den im Installer enthaltenen PuTTY Key Generator. Nachdem der Installer heruntergeladen und installiert wurde öffnen wir puttygen.exe.
Nach dem Öffnen, können wir Einstellungen für den verwendeten Schlüssel machen, grundsätzlich sind die Standard Einstellungen aber schon brauchbar. Also klicken wir auf Generate.
Nun wird man aufgefordert mit der Maus in dem Bereich möglichst „random“ herum zu fahren, bis der Balken voll ist.
Das Schlüsselpaar ist jetzt generiert. Nun kann man noch einen Kommentar hinterlegen (dieser wird beim Login auch immer angezeigt, somit weis man gleich ob soweit alles richtig ist). Passphrase darf keines eingegeben werden, sonst funktioniert der Zugriff ohne User & Passwort nicht (wenn man dies macht, muss man dann immer das Passwort welches man hier vergibt beim Verbinden eingeben). Der öffentliche Schlüssel wird auf dem Server hinterlegt und der Private bleibt auf dem Rechner, welcher sich zum Server verbindet. Dieser Schlüssel sollte gut verwahrt werden, da es nichts anderes ist wie ein Passwort für den Server. Gehen wir über zur Konfiguration auf dem SSH Server. Also erstmal einloggen und im Home Verzeichnis wird der Ordner .ssh erstellt.
mkdir .ssh chmod 0700 .ssh
Dann wird die Datei authorized_keys im Ordner .ssh erstellt.
cd .ssh nano authorized_keys
dort kopieren wir den generierten public Key hinein, am besten direkt vom PuTTY Key Generator, da der Key beim Speichern in einem anderen Format gespeichert wird, als es Putty für den Login benötigt. Der Key muss in einer Zeile stehen.
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAg9lMIaEZIWmdkeV50KtQ7eOka0CW7EZFLG0363ec3k/QmNIE41r9oxb0oV0IAVLrzZ2qDrn7q7D2c3ac+sUqgr2A8KdzbDMPsMi1IAUc9q2fls23SOHTS6ZwzDKyMIZe+lJmb3OWO3oWNGkyFdfG3gE6qdiBFfayEoNfYIXih1w6OKXRtzPUPwVl5usJC8W87oOhus7Fd9xxdc+g1dqPWE3tTqkJFjb4odXS5UgM65e1O/lnrv82ynF/W0fybnpgZg6FaJzpToXxlZqvpq4hAS9xFNFTbaxLZYTIGy0hp/caobvD6aNM8PSmC8mam6JPo1jzs4HVI+p8pW1vSGo9mw== rsa-key-20180301
Speichern die Datei mit „Strg + x“ und Y oder J. Nun wird noch die Berechtigung geändert.
chmod 0600 authorized_keys
Nun muss Putty noch entsprechend konfiguriert werden, leider ist dies nicht ganz selbst erklärend. Zuerst wird die Session gespeichert, also erstmal IP und einen Session Namen angeben.
Dann gibt man im Reiter Data unter Auto-login username den Namen an, im Fall von Raspbian natürlich pi.
Danach beim Reiter SSH –> Auth muss der Pfad zum Privaten Key angeben werden.
Nun muss die Session mit den vorgenommenen Einstellungen gespeichert werden. Also zurück zum Reiter Session, den Namen anklicken und auf Save klicken.
Danach wird versucht, ob alles geklappt hat. Also einfach die gespeicherte Session doppelt anklicken. Hat alles funktioniert logt man sich ohne Eingabe von Username und Passwort ein. In der zweiten Zeile sieht man nun auch den Kommentar.
Um das ganze noch zu vervollständigen. Was wird angezeigt wenn man doch einen Passphrase angegeben hat? – Natürlich, es wird nach dem Passphrase gefragt.
Und noch ein Screenshot, welche Meldung kommt, wenn ein Fehler z.B. beim speichern des Keys auf dem Server (authorized_keys) passiert ist, oder ev. ein nicht zusammen passendes Schlüsselpaar verwendet wird.
//Edit: Für Server die nicht in eurem Netzwerk sind und wo der Zugriff durch andere leicht möglich wäre, empfiehlt sich den Schlüssel mit 4096 Bits zu generieren.
//Edit2: Linux Mint 21 unterstützt RSA Keys nicht. Hier muss ein anderer Algorythmus angewendet werden.