SSH Agent
Zur Navigation springen
Zur Suche springen
- 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