Im Beitrag „[post id=1463]Debian mit OpenSSH administrieren[/post]“ habe ich gezeigt, wie man seinen Server mit SSH verwaltet. Nun möchte ich darauf eingehen, wie man einen neuen SSH-Benutzer anlegen kann.
Das ist besonders wichtig, wenn man zum Beispiel Subversion (SVN) auf seinem Server installiert hat und seine Benutzer über das gesicherte SSH-Protokoll zulassen möchte. Mir liegt dabei besonders die Authentifizierung über private Schlüssel am Herzen, da diese im Allgemeinen sicherer sind als Passwörter.
Schritt 1: Neuen Benutzer samt Schlüsselpaar erstellen
1 2 3 4 5 | sudo adduser --shell /bin/bash --disabled-password --ingroup 'gruppenname' benutzername sudo –i sudo -H -u benutzername ssh-keygen -t rsa sudo scp /home/benutzername/.ssh/id_rsa.pub /home/benutzername/.ssh/authorized_keys sudo chmod 0644 /home/benutzername/.ssh/authorized_keys |
Erklärung:
- Ein neuer Benutzer wird angelegt und einer Benutzergruppe zugeordnet. Als Standard-Shell wird die Bash zugewiesen. Damit der Benutzer sich ausschließlich mit seinem privaten Schlüssel anmelden kann, wird die Verwendung eines Passworts verboten.
Wichtig: Damit der SSH-Zugang klappt darf „–shell“ nicht den Wert „/bin/false“ haben. Der Parameter „–disabled-login“ darf ebenfalls nicht gesetzt sein. - Der Befehl „sudo -i“ gewährleistet dem aktuellen Benutzer genügend Rechte um Kommandos im Auftrag anderer Benutzer auszuführen (wird im nachfolgenden Schritt benötigt).
- Im Namen des Benutzers „benutzername“ wird ein Schlüsselpaar erzeugt. Man wird dabei aufgefordert eine „Passphrase“ einzugeben. Das erhöht die Sicherheit, erfordert allerdings, dass man bei jeder Verwendung des Schlüssels den Passphrase angibt. Ich empfinde das als hinderlich und verzichte daher auf einen Passphrase.
Wichtig: Ein Schlüsselpaar besteht aus zwei Dateien: id_rsa (privater Schlüssel) und id_rsa.pub (öffentlicher Schlüssel). Der private Schlüssel ist äußerst wichtig und darf niemals an andere Benutzer (außer dem Besitzer) ausgehändigt werden. Man kann den privaten Schlüssel mit einem „Wohnungsschlüssel“ vergleichen. Wer diesen Schlüssel hat, der hat Zugang zur Wohnung bzw. in diesem Fall zum Server. Der öffentliche Schlüssel dient zur Verifizierung des privaten Schlüssels. Er ist also das „Schloss“ der Wohnungstür und darf (muss sogar!) bekannt sein. Die beiden Schlüssel (id_rsa und id_rsa.pub) werden im Benutzer-Ordner (/home/benutzername/) im Unterverzeichnis „.ssh“ abgelegt. - Es hat sich eingebürgert, dass der öffentliche Schlüssel „authorized_keys“ heißt. Viele Programme suchen danach und daher sollte man unbedingt eine Kopie des öffentlichen Schlüssels erzeugen, die diesen Namen trägt. Eine solche Kopie wird mit dem Kommando „scp“ angelegt.
- Um sicherzustellen, dass der öffentliche Schlüssel (authorized_keys) auch von allen gelesen werden kann, werden die Dateirechte auf 644 gestellt.
Schritt 2: Dem neuen Benutzer SSH-Zugang gewähren
1 2 3 4 5 6 | sudo vi /etc/ssh/sshd_config i AllowUsers benutzername Esc :wq! sudo /etc/init.d/ssh reload |
Erklärung:
- Die Konfigurationsdatei des SSH Daemon wird mit dem Texteditor „vi“ geöffnet.
- Durch die Tasteneingabe „i“ schaltet der „vi“ in den Einfüge-Modus (insert).
- Es wird nach der Zeile mit dem Anfang „AllowUsers“ gesucht, in dieser Zeile muss der neue Benutzer hinzugefügt werden (mehrere Benutzer werden durch Leerzeichen getrennt).
- Durch die Tasteneingabe „Esc“ verlässt der „vi“ den Insert-Mode.
- Mit der Tasteneingabe „:wq!“ wird die Datei gespeichert und geschlossen (write, quit).
- Damit die Änderungen wirksam werden, wird die SSH-Konfiguration neu geladen.
Zwischenstand:
Jetzt sind alle Schritte getan, damit sich der neue Benutzer mit dem Schlüssel „id_rsa“ über SSH am Server anmelden kann. Trotzdem benötigen manche Windows-Programme noch eine angepasste Version der Datei „id_rsa“. WinSCP und der CollabNet SVN Client benötigen beispielsweise eine „PuTTY Private Key File„, weshalb man den privaten Schlüssel für diese Programme noch umwandeln muss. SmartSVN von syntevo kann mit der ursprünglichen „id_rsa“-Datei umgehen.
Schritt 3: PuTTY Private Key File erzeugen (optional)
- PuTTY Key Generator (PuTTYgen) öffnen
- „id_rsa“ in „id_rsa.ppk“ umbenennen (ppk = PuTTY Private Key Files)
- Load an exisiting private key
- id_rsa.ppk auswählen
- Save private key
Hi Benny!! This post was really useful to me. Thanks a lot for sharing!! Greetings from Guatemala 😀