SSH ohne Passwort

Aus MattWiki

Die nachfolgenden Schritte werden von der Client-Maschine aus ausgeführt.

Voraussetzung ist ein passwortgeschützter SSH-Zugriff zur Server-Maschine.

Schlüssel erstellen

$ ssh-keygen                                     # Neues RSA-Schlüsselpaar in ~/.ssh/ anlegen

Anmerkungen

  • Passwortabfrage von ssh-keygen kann leer gelassen werden, wenn es nur einen User in der Root-Gruppe gibt. Andernfalls ist dies ein Sicherheitsrisiko.


Ergebnis:

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:
b2:ad:a0:80:85:ad:6c:16:bd:1c:e7:63:4f:a0:00:15 user@host
The key's randomart image is:
+--[ RSA 2048]----+
|  E.             |
| .               |
|.                |
|.o.              |
|.ooo o. S        |
|oo+ * .+         |
|++ +.+...        |
|o. ...+.         |
|  .   ..         |
+-----------------+

Schlüssel zum remote Host kopieren

$ ssh-copy-id user@remotehost.tld
$ ssh-copy-id -i <id_rsa.pub> user@remotehost.tld

Einloggen ausprobieren

$ ssh user@remotehost.tld

Überprüfen, welche Schlüssel hinterlegt sind, um auszuschließen, dass weitere Schlüssel Zugriff haben:

$ less ~/.ssh/authorized_keys

Passwort für Schlüssel cachen

Wenn der Schlüssel mit einem Passwort gesichert wurde, kann man mit folgendem Programm das Passwort für den Schlüssel puffern für eine automatische Eingabe:

$ ssh-add -t 3600

Alternativ GNOME Keyring verwenden.

Für XFCE muss dieser in den Sitzungsoptionen aktiviert werden:

  1. Fortgeschritten → Laufzeitumgebung für GNOME beim Starten laden
  2. Automatisch gestartete Anwendungen → GNOME-Schlüsselbunddienst: Sicherheitsdienst
  3. Automatisch gestartete Anwendungen → GNOME-Schlüsselbunddienst: SSH-Agent

Known Host entfernen

Alte Hostnamen können aus den known_hosts entfernt werden mit:

ssh-keygen -f "path-to-known_hosts" -R <hostname> 
ssh-keygen -f "path-to-known_hosts" -R <ipaddress>