Schlagwort-Archive: OpenSSH Secure Shell

OpenSSH Secure Shell provides a large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options.

ssh-keygen so geht’s

Einfache Authentifizierung mit SSH-Keys und sichere Verbindung zu SSH-Host und zu WebServer im Internet ohne Passwort. In diesem Tutorial wird gezeigt, wie man ein Private-Key erstellt und der dazu passende Public-Key auf dem WebServer hinterlegt.

SSH-Keygen unter Linux und macOS

SSH-Keys machen das eingeben von Passwörtern bei der Verbindung über SSH überflüssig. Gerade für die Verwaltung von mehreren Accounts kann das viel Zeitersparnisse bringen. Im folgenden wird die Einrichtung von SSH-Keys mit ssh-keygen auf Linux und macOS beschrieben. Hierzu man ein Terminal öffnet und den Befehl ausführt.

$ ssh-keygen -t rsa -b 4096

Der Rechner fragt nun, in welcher Datei der Schlüssel abgelegt werden soll, am besten eine neue eindeutige Datei anlegen. Die Voreinstellung ist, dass der Schlüssel in die Standard-Datei (id_rsa) gespeichert wird, was unübersichtlich ist, zudem der Ordner „.ssh“ auch noch versteckt ist.

$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mike/.ssh/id_rsa): mein-key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in mein-key.
Your public key has been saved in mein-key.pub.
The key fingerprint is:
SHA256:7oBofs25Wz2b03V2+5daXFUAq8ClijSfSjUog/3sVwo mike@Laptop
The key's randomart image is:
+---[RSA 4096]----+
|          . .....|
| o   . . o   .  .|
|. + + o +   .   .|
|   * = + . .    .|
|    E + S .     .|
|   + + + .    o =|
|  o +o+.o o. . =+|
| o  ..++  .+. .o.|
|  ..  oo. o. .. +|
+---- SHA256 -----+

Es wird ein Schlüssel nach dem RSA-Kryptosystem mit der Länge 4096 Bit erstellt. Damit ist der Schlüssel per Brute-Force kaum zu knacken.

Es lässt sich jetzt zusätzlich für noch mehr Sicherheit eine Passphrase vergeben, das ist aber nicht zwingend nötig. Falls man eine Passphrase für den Key nutzen möchte, kann man dieses eingeben und es anschließend bestätigen. Andernfalls kann man diese Option mit der Eingabetaste überspringen. Wir erstellen an der Stelle ein Schlüsselpaar ohne zusätzliches Passphrase.

Das war es schon: Das Schlüsselpaar ist erstellt und liegt in der angegebenen Datei. Diese können mit einem Text-Editor im Terminal mit vi oder nano, und bei macOS mit einem beliebigen Editor geöffnet werden, um das Schlüsselpaar anzusehen, es darf jedoch nichts verändert werden, auch keine Leerzeilen einfügen.

mein-key
mein-key.pub

Der Inhalt der Datei mein-key.pub in verkürzter Form etwa wie dieser.

ssh-rsa AAAAB3NzaC1yc2EAAADAQABACQCuA1tumTMG/sa7OpjxbuL5vz7R..
...
VOOpjavLDM0iZjWbRc3KeKuEIu9Lw== mike@Laptop

Public-Key auf den Server bringen

Nun bleibt noch der letzte Schritt, den Public-Key auf dem gewünschten WebServer zu hinterlegen. Am besten lässt es sich auf dem Server mit „ssh-copy-id“ erledigen. Da die Erstellung auf dem „Steuerrechner“, also dem Laptop erfolgt ist, muss der öffentliche Schlüssel noch auf den WebServer kopiert werden. Zunächst loggt man sich dazu auf dem Server ein und legt dann den Schlüssel dort ab. Dazu der nötige Befehl im Terminal wie folgt lautet.

$ ssh-copy-id -i ~/.ssh/mein-key mike@webserver.org

Als alternative, wenn man „ssh-copy-id“ nicht nutzen möchte, kann der Inhalt der lokalen Datei  ~/.ssh/mein-key.pub zum WebServer in die Datei ~/.ssh/authorized_keys kopiert werden. Führe dazu den Befehl in der Shell beim Steuerrechner aus.

$ cat ~/.ssh/mein-key.pub | ssh mike@webserver.org "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
chmod 0600 ~/.ssh/authorized_keys

Alternativ kann der Public-Key auch per Copy Paste direkt in der Datei authorized_keys gespeichert werden.

  Der Private-Key mein-key muss geheim bleiben, daher diesen nicht auf dem Server unterbringen.

  Unter Windows kann OpenSSH bereitgestellt werden, unter Einstellungen – Apps und Features – Optionale Features, oder es wird PuTTY (puttygen) verwendet.

KiTTY SSH-Client für Windows

KiTTY der PuTTY-Fork als Windows Telnet- und SSH-Client

KiTTY ist ein Fork der PuTTY Version 0.71, von vielen genutzt ist PuTTY der meist bekannte Telnet/SSH-Client. Wie auch PuTTY wurde KiTTY nur für Windows entwickelt. KiTTY verfügt über alle Funktionen der Originalsoftware, beinhaltet jedoch einen erweiterten umfang.

So ergibt sich unter weiterem die gelegenheit, die Verbindungsdaten – Sessions nicht wie es der Standard vorsieht, in der Registry unter dem Schlüssel Sessions zu verwalten, sondern es bietet sich die Möglichkeit die Verbindungsdaten als Textdateien unter dem Ordner sessions zu speichern.

KiTTY Sitzungsdaten in Verzeichnis Sessions

Damit die Verbindungsdaten unter dem Verzeichnis Sessions als Textdateien gespeichert werden können, muss die Datei kitty.ini erstellt werden, in dieser der folgende Inhalt eingefügt wird.

[KiTTY]
savemode=dir

Bei der ersten Verwendung ist es möglich, die gesamte Konfiguration aus der Registrierung zu kopieren, dann wenn bereits Sitzungen mit dem normalen KiTTY-Modus erstellt wurden.

Dazu wird eine Eingabeaufforderung Win+Rcmd (command prompt) geöffnet und zum Verzeichnis gewechselt wo kitty.exe ist. Es werden nun mittels Parameter --convert-dir in der Befehlszeile, die zuvor in der Registrierung gespeicherten Sitzungen, als Sitzungsdateien unter dem Verzeichnis Sessions gespeichert.

kitty.exe -convert-dir

Im Gegensatz zum (klassischen) Registrierungsmodus ist es möglich, mehrere gespeicherte Sitzungen mit demselben Namen, jedoch in verschiedenen Ordnern zu speichern. Um eine Sitzung mit der Befehlszeilenoption (-load) zu starten, ist es daher erforderlich, den Ordner, in dem sich die Sitzungsdatei befindet, mit der Option -folder anzugeben.

kitty.exe -folder Ordner/Unterordner -load SessionName

Fazit

Im KiTTY-Modus für INI-Datei können die Sitzungsdaten in einem Verzeichnis gespeichert und verwaltet werden, hierdurch bietet sich die Möglichkeit, die Verbindungsdaten in Sitzungsdateien über ein Netzwerkordner zu teilen, oder über ein Offlineordner die Sitzungsdateien zu synchronisieren.

Tipp

KiTTY Sitzung mit Windows Verknüpfung starten. Mit dem Parameter -load können Sitzungen als Shortcut auf dem Desktop oder in Ordnern gespeichert und von dort gestartet werden.

kitty.exe -load SessionName
KiTTY Shortcut load SessionName

KiTTY Download FossHub