BEARBEITEN:Siehe Antwort unten, meine Annahmen waren falsch.
Wenn ich Folgendes in meiner SSH-Konfiguration ( ~/.ssh/config
unter OS X) habe, stellt das ein Sicherheitsrisiko dar?
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/my-secret-key.pem
Nach meinem Verständnis würde ich meinen geheimen Schlüssel an jeden Host senden, bei dem ich mich ssh
anmelde. Ist das richtig? Wenn ja, ist das ein Sicherheitsrisiko? Könnte der Host theoretisch versuchen, meinen geheimen Schlüssel zu verwenden, um sich bei einigen wichtigen SSH-Hosts (wie GitHub) anzumelden?
Wenn ich angebe HostName
, gehe ich dann richtig davon aus, dass der Schlüssel nur an diesen Host gesendet wird:
Host *
HostName github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/my-secret-key.pem
Deroffizielle Dokumente zum Einrichten von SSH für GitHubscheint vorzuschlagen, die erste Konfiguration zu verwenden ...
Antwort1
SSH funktioniertnichtSenden Sie Ihre privaten Schlüssel an den Server. Der Mechanismus basiert auf Berechnungen mit dem, was die Entität besitzt - der Server berechnet etwas auf der Grundlage des öffentlichen Schlüssels, der Client auf der Grundlage des privaten Schlüssels (siehedieser Information Security Stack Exchange-Beitragfür mehr).
Unabhängig davon, ob Sie die Schlüssel zum Agenten hinzufügen oder nicht, probiert SSH alle Schlüssel aus, bis einer erfolgreich ist. Sofern Sie keine Agentenweiterleitung eingerichtet haben, gibt es meiner Meinung nach keine Möglichkeit, irgendetwas auf demServerum die dem Agenten hinzugefügten Schlüssel verwenden zu können.
Host *
HostName github.com
AddKeysToAgent yes
Dadurch wird der Wert Hostname
von jedem Host
auf gesetzt github.com
, was Sie mit Sicherheit nicht tun möchten (das bedeutet, dass ssh foo.bar
eine Verbindung zu hergestellt wird github.com
). Wenn Sie eine Konfiguration nur auf Verbindungen zu anwenden möchten github.com
, verwenden Sie dies als Host
Muster:
Host github.com
IdentityFile ~/.ssh/my-secret-key.pem
Ob es ein Sicherheitsrisiko darstellt, hängt davon ab, gegen wen Sie sich verteidigen. Wenn Ihre SSH-Schlüssel kennwortgeschützt sind und jemand anderes auf den SSH-Agenten Ihres Systems zugreifen kann, werden alle kennwortgeschützten Schlüssel für den Zugriff freigegeben, sobald sie dem Agenten hinzugefügt werden.
Ich würde aber sagen, dass diese Bedrohung unwahrscheinlich ist.