SSH: Login mit Key statt Passwort und schön bunt

Jedes Mal wenn ich einen neuen Raspberry oder Webserver einrichte, mache ich ein paar Modifikationen an der bash Shell und sorge dafür, dass ich mich ohne Passwort mit einem Schlüssel anmelden kann und an der Farbe des Prompts erkenne, ob ich mit root-Rechten arbeite.
Eingefärbte Verzeichnisse und praktische Abkürzungen mag ich auch.

Also bash sicherer und praktisch.

bash mit ll und Farben für root

Als Gewohnheitstier vermisse ich das ll Kommando als Abkürzung für ls -l. Die ist bei aktuelle Linux Installationen immer deaktiviert.
Außerdem mag ich es, wenn der root prompt die gleichen Abkürzungen kennt und sich obendrein farblich vom normalen Prompt unterscheidet.

Fangen wir mit dem normalen User (also nicht root) an. Wir müssen die .bashrc im Home-Verzeichnis ändern
nano ~/.bashrc
Dort suchen wir die folgenden Zeilen und entfernen jeweils das '#':
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'
Mit STRG-o und RETURN speichern, mit STRG-x beenden. Damit haben wir dann schon mal das ll Kommando.

Auch root hat eine .bashrc Datei, allerdings ist die normalerweise rudimentär. Also kopiere ich einfach die gerade geänderte Datei in /root/ Verzeichnis:
sudo cp /home/pi/.bashrc /root/
Damit sind Prompt und Kommandos schon mal so wie beim pi User. Fehlt nur noch das Umfärben.
Also sudo nano /root/.bashrc und folgende Zeile suchen:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] '
Das 1;32m steht für hellgrün. Das ändern wir in 1;31m (hellrot). Die Farben sind übrigens z.B. hier beschrieben. Das Resultat sieht dann so aus:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] '
Wieder speichern und beenden. Das Resultat können wir mit sudo -s testen.
pi@oscam:~ $ sudo -s
root@oscam:/home/pi #

Login mit Key statt Passwort

Die folgende Beschreibung gilt für alle Nutzer von Putty, DEM Programm für SSH Verbindungen für Windows. Das bekommt man hier, aber ich gehe davon aus, dass ihr es sowieso gerade benutzt um Euch mit dem Raspi zu verbinden. Nutzer anderer SSH Clients müssen googlen :)

Mit Putty wird auch das Tool PuttyGen installiert. Das starten wir und klicken den "Generate" Button.

Anschließend fleißig die Maus bewegen, bis das Schlüsselpaar erstellt ist.

 

Jetzt einen passenden Kommentar eintragen (z.B. "Raspi"), private und public Key speichern. Den private key im .ppk Format brauchen wir nachher für Putty. Und den oben markierten Teil müssen wir kopieren und beim Raspi eintragen. Also alles inkl. ssh-rsa kopieren. 

 

Beim Raspi als normaler pi User das Verzeichnis .ssh erstellen und darin die Datei authorized_keys anlegen:
cd
mkdir .ssh
nano .ssh/authorized_keys
In diese Datei einfach den aus PuttyGen kopierten Schlüssel einfügen, speichern, beenden.
Das Resultat sollte dann so aussehen:
pi@raspi:~ $ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAlqQotzftQEdHraEUG2OhUywLVpCNSfSVzQvMUzfslcQUYI243v+1vn9Ah9H8sBQq+64XUPRvZCc4sPPev48iCCKVIkhSgx6y8kF3aGi+rTGEzYjyClz87URk1jgJMRRW9M+Pyz19Mna40BdsWdz4aUEh6Yvep1daoohia2a4OYt/7uS9AUrRi+o7ntRLp76jqw74cyLkOPnoV2igMF9HmEbKClkN/I5Aj9f0zpEFCQJWDoB4TKUp7QghNRf9ClfI3vPWUIwc/NGkIuQN8L4ZthZvqQIjjdS5/L8yBq1zq8c93ySJSAMEePaGpf6wjuVeBbKUfuMI2lTGO2Vh2WCn+Q== raspi
pi@raspi:~ $
Den Schlüssel verwende ich übrigens nirgendwo :)
Zuletzt noch die Rechte auf .ssh und authorized_keys einschränken, die sollten nur vom User lesbar sein:
chmod 700 .ssh
chmod 700 .ssh/authorized_keys

Damit hat der Raspi den öffentlichen Schlüssel, jetzt müssen wir Putty nur noch beibringen, den privaten Schlüssel zum Einloggen zu verwenden.

Dazu die Session für den Raspi in Putty laden (oder eine speichern) und links SSH / Auth auswählen.

Dann kann die gespeicherte ppk Datei laden.

Der Server-Name der Session muss den User enthalten, also z.B. pi@192.168.1.33.
Nur dann klappt der Login mit Schlüssel.

Das wars!

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert