SSH Agent: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 18: | Zeile 18: | ||
*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 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). | *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, 18:32 Uhr
- Man kann sich per SSH auf einem anderen Rechner auch per Public-Private-Key verfahren einlogen.
- Im .ssh-Verzeichnis liegt der privaten Schlüssel des Benutzer.
- 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.
- Jeder, der sich mit diesem Socket verbinden kann, hat auch Zugriff auf den ssh-agenten.
- Die Berechtigungen werden wie in einem üblichen Linux- oder Unix-System gesetzt.
- Wenn der Agent startet, erstellt er ein neues Verzeichnis in /tmp mit restriktiven Berechtigungen.
- 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).
