SSH ohne Passwort: Unterschied zwischen den Versionen
Matt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Matt (Diskussion | Beiträge) |
||
| (20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
Voraussetzung ist ein passwortgeschützter SSH-Zugriff zur Server-Maschine. | Voraussetzung ist ein passwortgeschützter SSH-Zugriff zur Server-Maschine. | ||
== Schlüssel erstellen == | |||
$ ssh-keygen | $ ssh-keygen # Neues RSA-Schlüsselpaar in ~/.ssh/id_rsa und ~/.ssh/id_rsa.pub anlegen | ||
$ ssh-keygen -t ed25519 #ed25519 ist moderner | |||
https://medium.com/risan/upgrade-your-ssh-key-to-ed25519-c6e8d60d3c54 | |||
'''Anmerkungen''' | '''Anmerkungen''' | ||
* Passwortabfrage von <code>ssh-keygen</code> kann leer gelassen werden, wenn es nur einen User in der Root-Gruppe gibt | * Passwortabfrage von <code>ssh-keygen</code> kann leer gelassen werden, wenn es nur einen User in der Root-Gruppe gibt | ||
* Sind mehrere Root-User vorhanden, oder handelt es sich nicht um einen Root-User, ist dies ein Sicherheitsrisiko. In diesem Falle sollte ein Passwort verwendet werden. Dieses kann im Schlüsselbund gedached werden. Vgl. [[SSH ohne Passwort|Passwort für Schlüssel im Schlüsselbund cachen]] | |||
| Zeile 35: | Zeile 41: | ||
+-----------------+ | +-----------------+ | ||
== Schlüssel zum Remotehost kopieren == | |||
=== Per ssh-copy-id === | |||
$ ssh-copy-id user@remotehost.tld | $ ssh-copy-id user@remotehost.tld | ||
$ ssh-copy-id -i <id_rsa.pub> user@remotehost.tld | $ ssh-copy-id -i <id_rsa.pub> -p <port> user@remotehost.tld | ||
Einloggen ausprobieren | Einloggen ausprobieren | ||
| Zeile 48: | Zeile 55: | ||
$ less ~/.ssh/authorized_keys | $ less ~/.ssh/authorized_keys | ||
=== Passwort für Schlüssel cachen === | === Manuell === | ||
* Öffentlichen Schlüssel aus <code>~/.ssh/id_rsa.pub</code> in Zwischenablage kopieren | |||
* Auf Zielmaschine einloggen | |||
* Inhalt aus Zwischenablage ans Ende der Datei <code>~/.ssh/authorized_keys</code> anfügen | |||
== Passwort im Schlüsselbund speichern für passwortlosen Login == | |||
=== Passwort für Schlüssel temporär 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: | 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: | ||
| Zeile 55: | Zeile 69: | ||
Alternativ GNOME Keyring verwenden. | Alternativ GNOME Keyring verwenden. | ||
Für XFCE muss dieser | Für XFCE muss dieser unter "Sitzung und Startverhalten" (Startmenü → Einstellungen) aktiviert werden. Dazu folgende Optionen aktivieren: | ||
# Register: Fortgeschritten → Laufzeitumgebung für GNOME beim Starten laden | |||
# Register: Automatisch gestartete Anwendungen → GNOME-Schlüsselbunddienst: Sicherheitsdienst | |||
# Register: Automatisch gestartete Anwendungen → GNOME-Schlüsselbunddienst: SSH-Agent | |||
=== Password Less Authentication on Windows 11 with OpenSSH === | |||
Activate ''OpenSSH Authentication Agent'' for automatic start: | |||
# Set the sshd service to be started automatically | |||
Get-Service ssh-agent | Set-Service -StartupType Automatic | |||
# Start the service | |||
Start-Service ssh-agent | |||
# This should return a status of Running | |||
Get-Service ssh-agent | |||
Add Passphrase of Private Key to OpenSSH Agent: | |||
# Now load your key files into ssh-agent | |||
ssh-add $env:USERPROFILE\.ssh\id_ed25519 | |||
Now pubkey-login from command line should work. | |||
To enable Putty using OpenSSH Authentication Agent two methods are possible: | |||
# Use Pageant from Putty → Requires to enter passphrase each time | |||
# Proxy Pageant requests to the Windows OpenSSH agent (from Microsoft), enabling applications that only support Pageant to use openssh (and therefore its passphrase storage): | |||
https://github.com/ndbeals/winssh-pageant | |||
=== Known Host entfernen | === Password Less Authentication on MacOS === | ||
Add following line to <code>~/.ssh/config</code> (create this file if not existent): | |||
UseKeychain yes | |||
Also add ssh key to keychain: | |||
ssh-add --apple-use-keychain ~/.ssh/<id_xxx_file> | |||
== Known Host entfernen == | |||
Alte Hostnamen können aus den known_hosts entfernt werden mit: | 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 <hostname> | ||
ssh-keygen -f "path-to-known_hosts" -R <ipaddress> | ssh-keygen -f "path-to-known_hosts" -R <ipaddress> | ||
== Fingerprints und Schlüssellänge herausfinden == | |||
Beim ersten Verbinden per SSH-Client mit einem SSH-Server kommt die Warnung, dass der Fingerprint des Servers unbekannt sei. | |||
Der Fingerprint des Servers kann Serverseitig anhand der öffentlichen Schlüssel (*.pub) folgendermaßen überprüft werden: | |||
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub | |||
ssh-keygen -lf /etc/ssh/ssh_host_dsa_key.pub | |||
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | |||
== Weitere Infos == | |||
https://devops.ionos.com/tutorials/use-ssh-keys-with-putty-on-windows/ | |||
https://interworks.com/blog/2021/09/15/setting-up-ssh-agent-in-windows-for-passwordless-git-authentication/ | |||
https://superuser.com/questions/1433917/windows-10-ssh-client-password-less-access | |||
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement | |||
[[Category:Kryptographie]] | [[Category:Kryptographie]] | ||
[[Kategorie:Terminal]] | |||
Aktuelle Version vom 24. Mai 2026, 21:59 Uhr
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/id_rsa und ~/.ssh/id_rsa.pub anlegen $ ssh-keygen -t ed25519 #ed25519 ist moderner
https://medium.com/risan/upgrade-your-ssh-key-to-ed25519-c6e8d60d3c54
Anmerkungen
- Passwortabfrage von
ssh-keygenkann leer gelassen werden, wenn es nur einen User in der Root-Gruppe gibt - Sind mehrere Root-User vorhanden, oder handelt es sich nicht um einen Root-User, ist dies ein Sicherheitsrisiko. In diesem Falle sollte ein Passwort verwendet werden. Dieses kann im Schlüsselbund gedached werden. Vgl. Passwort für Schlüssel im Schlüsselbund cachen
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 Remotehost kopieren
Per ssh-copy-id
$ ssh-copy-id user@remotehost.tld $ ssh-copy-id -i <id_rsa.pub> -p <port> 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
Manuell
- Öffentlichen Schlüssel aus
~/.ssh/id_rsa.pubin Zwischenablage kopieren - Auf Zielmaschine einloggen
- Inhalt aus Zwischenablage ans Ende der Datei
~/.ssh/authorized_keysanfügen
Passwort im Schlüsselbund speichern für passwortlosen Login
Passwort für Schlüssel temporär 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 unter "Sitzung und Startverhalten" (Startmenü → Einstellungen) aktiviert werden. Dazu folgende Optionen aktivieren:
- Register: Fortgeschritten → Laufzeitumgebung für GNOME beim Starten laden
- Register: Automatisch gestartete Anwendungen → GNOME-Schlüsselbunddienst: Sicherheitsdienst
- Register: Automatisch gestartete Anwendungen → GNOME-Schlüsselbunddienst: SSH-Agent
Password Less Authentication on Windows 11 with OpenSSH
Activate OpenSSH Authentication Agent for automatic start:
# Set the sshd service to be started automatically Get-Service ssh-agent | Set-Service -StartupType Automatic # Start the service Start-Service ssh-agent # This should return a status of Running Get-Service ssh-agent
Add Passphrase of Private Key to OpenSSH Agent:
# Now load your key files into ssh-agent ssh-add $env:USERPROFILE\.ssh\id_ed25519
Now pubkey-login from command line should work.
To enable Putty using OpenSSH Authentication Agent two methods are possible:
- Use Pageant from Putty → Requires to enter passphrase each time
- Proxy Pageant requests to the Windows OpenSSH agent (from Microsoft), enabling applications that only support Pageant to use openssh (and therefore its passphrase storage):
https://github.com/ndbeals/winssh-pageant
Password Less Authentication on MacOS
Add following line to ~/.ssh/config (create this file if not existent):
UseKeychain yes
Also add ssh key to keychain:
ssh-add --apple-use-keychain ~/.ssh/<id_xxx_file>
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>
Fingerprints und Schlüssellänge herausfinden
Beim ersten Verbinden per SSH-Client mit einem SSH-Server kommt die Warnung, dass der Fingerprint des Servers unbekannt sei.
Der Fingerprint des Servers kann Serverseitig anhand der öffentlichen Schlüssel (*.pub) folgendermaßen überprüft werden:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub ssh-keygen -lf /etc/ssh/ssh_host_dsa_key.pub ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
Weitere Infos
https://devops.ionos.com/tutorials/use-ssh-keys-with-putty-on-windows/
https://superuser.com/questions/1433917/windows-10-ssh-client-password-less-access
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement
