SSH Agent: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 38: | Zeile 38: | ||
* '''export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket''' | * '''export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket''' | ||
* Diesen Befehl kann man entweder in ''.bash_profile'', ''.zprofile'', ''.xinitrc'' oder ''.xprofile'' setzten, je nachdem was die Desktopumgebung verwendet | * Diesen Befehl kann man entweder in ''.bash_profile'', ''.zprofile'', ''.xinitrc'' oder ''.xprofile'' setzten, je nachdem was die Desktopumgebung verwendet | ||
| + | |||
| + | =Wenn kein grafisches System vorhanden= | ||
| + | *[[Ssh agent start]] | ||
=Wenn kein grafisches System vorhanden= | =Wenn kein grafisches System vorhanden= | ||
*[[Ssh agent start]] | *[[Ssh agent start]] | ||
Version vom 22. Februar 2024, 16:49 Uhr
- Für zusätzliche Sicherheit ist es üblich, den privaten Schlüssel in verschlüsselter Form zu speichern,
- Zum Entschlüsseln wird eine Passphrase genutzt.
- Da die Eingabe der Passphrase mühsam sein kann, möchten viele Benutzer sie nur einmal pro lokaler Anmeldesitzung eingeben.
- Der sicherste Ort zum Speichern des unverschlüsselten Schlüssels ist der Programmspeicher
- In Unix-ähnlichen Betriebssystemen ist der Speicher normalerweise mit einem Prozess verbunden.
- Die SSH-Client-Prozesse dauern nur so lange wie die Remote-Anmeldesitzung.
- Daher führen Benutzer ein Programm namens ssh-agent aus, das über die Dauer einer lokalen Anmeldesitzung hinaus läuft.
- Dieses speichert unverschlüsselte Schlüssel im Speicher und kommuniziert mit SSH-Clients über einen Unix-Domain-Socket.
- ssh-agent erstellt einen Socket und überprüft dann die Verbindungen von SSH.
- Wenn der Agent startet, erstellt er ein neues Verzeichnis in /tmp mit restriktiven Berechtigungen.
- Der Socket befindet sich in diesem Verzeichnis.
Einrichten
- Damit der SSH Agent beim Anmelden des Benutzers automatisch startet, wird die folgende systemd-Servicedatei angelegt
- vim ~/.config/systemd/user/ssh-agent.service
[Unit] Description=SSH key agent [Service] Type=simple Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket Environment=DISPLAY=:0 ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK [Install] WantedBy=default.target
- systemctl --user enable --now ssh-agent.service
- Dann muss man SSH sagen, dass die Schlüssel zum Agent hinzugefügt werden sollen
- vim ~/.ssh/config
AddKeysToAgent yes
- Als letztes muss man die Umgebungsvariable des Sockets vom SSH-Agent setzen, damit SSH auch mit dem Agent kommunizieren kann
- export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket
- Diesen Befehl kann man entweder in .bash_profile, .zprofile, .xinitrc oder .xprofile setzten, je nachdem was die Desktopumgebung verwendet
