SSH Agent: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 10: Zeile 10:
 
*Wenn der Agent startet, erstellt er ein neues Verzeichnis in /tmp mit restriktiven Berechtigungen.
 
*Wenn der Agent startet, erstellt er ein neues Verzeichnis in /tmp mit restriktiven Berechtigungen.
 
*Der Socket befindet sich in diesem Verzeichnis.
 
*Der Socket befindet sich in diesem Verzeichnis.
*Es gibt ein Verfahren, das Malware daran hindern kann, den ssh-agent-Socket zu verwenden.
 
*Wenn die Option ssh-add -c beim Importieren der Schlüssel in den ssh-agenten gesetzt ist, fordert der Agent mit dem durch die Umgebungsvariable SSH_ASKPASS angegebenen Programm eine Bestätigung vom Benutzer an, wenn ssh versucht, eine Verbindung herzustellen.
 
*Auf dem lokalen System ist es wichtig, dass der Root-Benutzer vertrauenswürdig ist, da der Root-Benutzer unter anderem die Schlüsseldatei direkt lesen kann.
 
*Auf dem entfernten System ist es beim Weiterleiten der ssh-Agenten-Verbindung auch wichtig, dass der Root-Benutzer am anderen Ende vertrauenswürdig ist, da er auf den Agenten-Socket auf der entfernten Seite zugreifen kann (allerdings nicht auf den Schlüssel, der lokal bleibt).
 
 
{{#drawio:ssh-agent1-1}}
 
{{#drawio:ssh-agent1-1}}

Version vom 8. November 2021, 19:35 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.