SSH Agent: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 29: Zeile 29:
 
  WantedBy=default.target
 
  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
 
* Dann muss man SSH sagen, dass die Schlüssel zum Agent hinzugefügt werden sollen
 
* '''vim ~/.ssh/config'''
 
* '''vim ~/.ssh/config'''

Version vom 28. November 2023, 09:21 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