Oh Hallo kennen wir uns? Nein? Bitte Passwort nennen! So oder so ähnlich läuft das nicht nur vor einem Club oder Bar ab, sondern auch in der IT Welt. Viele Maschinen verbinden sich tausendfach auf dieser Welt und benötigen ein SSH Passwort, um sich zu verbinden/Authentifizierung. Problem hierbei ist nicht nur das umständliche Handling „User/Passwort“ Verfahren, sondern auch die Tatsache, dass sich Passwörter auch verändern können und diese auch auswirkungen auf alle Verbindungen/Scripte haben. Eine gute Alternative ist hierbei das Public Key Verfahren. Der Client verbindet sich mithilfe eines RSA-Key auf dem Server. Der Server überprüft den Schlüssel auf Glaubhaftigkeit und Verfiziert diesen. Diese Authentifizierungsphase ist nicht sicher, sondern ist schneller als alle anderen Verfahren. Wie man sich auf dem Server dieses Verfahren einbaut, werden ich nun Dokumentieren.
Vorrausetzung
- Ein Host System, Linux und mit einem frisch upgedateten System.
- SSH (
apt-get install openssh-server
)
Erstellung eines Keypaares
user@client:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: 24:55:ee:67:83:72:82:55:5f:b9:b4:09:2a:fa:56:a1 user@client.local The key's randomart image is: +--[ RSA 2048]----+ | | | | | | | + . | | S E | | . + + | | .o . o.| | o.oo. oo| | ==o.BO+| +-----------------+ user@client:~$
Nachdem man erfolgreich mit dem ssh-keygen einen Schlüssel erzeugt haben, sehen wir nach und stellen fest, dass 2 Dateien erzeugt worden sind.
id_rsa
Dieser ist dein Privater Schlüssel. Achtung dieser Schlüssel darf niemals verloren gehen. Dieser Authentifiziert dich und sollte wie ein Passwort behandelt/geschützt werden.
id_rsa.pub
Unter der Endung pub
versteckt sich das Wort Public und bedeutet wörtlich übersetzt „Öffentlich“. Dieser Schlüssel darfst und sollst du der Welt zeigen.
Um die Authentifizierung auf fremden Systemen durchzuführen, setzen wir unser Public Key in der SSH Konfigurationsdatei „authorized_keys“ ein.
Entweder durch das manuelle kopieren oder mithilfe des Befehls:
user@client:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
Nun sollten wir mithilfe des Hostnamens und des Usernames per SSH ssh user@host
uns ohne Probleme verbinden können.