Dieser Artkel beschäftigt sich mit der Absicherung von SSH mittels Authentifikationsschlüsseln (Public Key Auth). Hierdurch können bequem längere Passwörter für SSH Useraccounts vergeben werden, was das System bei gleichzeitig höherem Bedienungskomfort, härtet.
                       

     TIPP:      Nutzen Sie für die Administration Ihres Servers und Ihres Netzwerkes nach Möglichkeit einen eigens dafür eingerichteten  Rechnertip_ausrufezeichen,  dessen Systempartition Sie wahlweise mit Bitlocker (Windows), LUKS (Linux) oder Filevault2 (Mac) komplett verschlüsseln.

                       

Das Public Key Verfahren in der Theorie

  1. Auf dem Client PC, von dem der Server verwaltet wird, werden ein privater und ein öffentlicher Schlüssel erstellt.
  2. Der öffentliche Schlüssel des Client Pcs wird auf den Server hochgeladen.
  3. Der private Schlüssel bleibt auf dem Client PC und darf auch nicht weitergereicht werden.

Erstellung eines Public/Private Keys unter Mac OS und Linux in der Praxis:

  • Öffnen Sie ein Terminal
  • Geben Sie ssh-keygen im Terminal ein.
  • Bestätigen Sie die voreingestellten Pfadangaben, die Ihnen das Terminal nun anbietet mit Enter:

Enter file in which to save the key (/home/bob/.ssh/id_rsa):
*/Users/bob/.ssh/id_rsa auf dem Mac

  • Geben Sie hier Enter ein

snapshot-ssh-keygen1
Danach erhalten Sie folgende Ausgabe:
created directory ‘/home/bob/.ssh’ .
Enter passphrase (empty for no passphrase):

  • Bestätigen Sie hier mit Enter

Enter same passphrase again:

  • Bestätigen Sie hier erneut mit Enter

snapshot-ssh-keygen2-enter-pwd
Die Ausgabe sollte nun folgender ähneln:
The key fingerprint is:

01:02:03:04:05:06:07:08:09:10:11:12:13:14:15:16 bob@alice

The key’s randomart image is

+--[ RSA 2048]----+
|             .ooo|
|       .   ..o   |
|      o + .oo .  |
|     . + o....   |
|      o.S  ..    |
|       ..   .    |
|    .  o o .     |
|   o . .o +      |
|      ......     |
+-----------------+
snapshot-ssh-keygen3-key-generated
  • Laden Sie nun den öffentlichen Teil des Schlüssels (Public Key) auf den Server hoch, auf dem Sie sich zukünftig via Public Key anmelden möchten:

scp /home/bob/.ssh/id_rsa.pub bob@ihrserver.de:authorized_keys

*Auf dem Mac:
scp /Users/bob/.ssh/id_rsa.pub bob@ihrserver.de:authorized_keys

  • Der Server fragt Sie nun nach Ihrem Passwort, dass Sie für den User bob eingeben müssen.

Bei erfolgreichem Upload sehen Sie im Terminal:
id_rsa.pub 100% 407 0.4KB/s 00:00

  • Loggen Sie sich auf dem Remoteserver via Passwort an:

ssh bob@ihrserver.de

  • Lassen Sie sich anzeigen, ob das Hochladen des Public Keys funktioniert hat:

ls
Als Ausgabe sollten Sie jetzt hier die Datei authorized_keys sehen.

  • Erstellen Sie den verborgenen Ordner .ssh im Homeverzeichnis des Users.

mkdir -p .ssh

  • Verschieben Sie auf dem Server die Datei authorized_keys in den eben erstellten Ordner .ssh:

mv authorized_keys .ssh/authorized_keys

  • Setzen Sie die korrekten Zugriffsrechte für die Datei .ssh/known_hosts

chmod 600 .ssh/authorized_keys

  • Loggen Sie sich aus dem Server aus

exit
Wenn alles funktioniert hat, steht nun die Public Key Authentifizierung zur Verfügung.

  • Connecten Sie sich einfach via

bob@ihrserver.de