Ich habe die offizielle Definition gelesen:
ssh-agent ist ein Programm zur Speicherung privater Schlüssel für die Authentifizierung mit öffentlichen Schlüsseln (RSA, DSA, ECDSA). Die Idee ist, dass ssh-agent zu Beginn einer X-Sitzung oder einer Anmeldesitzung gestartet wird und alle anderen Fenster oder Programme als Clients für das Programm ssh-agent gestartet werden. Durch die Verwendung von Umgebungsvariablen kann der Agent gefunden und automatisch zur Authentifizierung verwendet werden, wenn Sie sich mit ssh (1) bei anderen Computern anmelden.
"..ein Programm zum Speichern privater Schlüssel .." - IMHO - SSH-Schlüssel werden vom Benutzer mit dem Befehl ssh-keygen generiert und einfach und direkt in ~ / .ssh gespeichert. Warum brauche ich einen Dämon, um diese Schlüssel zu speichern? Wie genau hält es sie überhaupt - sind sie nicht nur in .ssh gespeichert?
"werden als clients zum ssh-agent programm gestartet" - verstehe ich nicht. Wo würde man das brauchen? Normalerweise benutze ich ssh wie folgt:
ssh -i ~/.ssh/private_key_name username@hostname
Was genau bedeutet Handbuch unter "Kunden" - welche Kunden? Führen Sie nicht einfach den Befehl ssh vom Terminal aus, um eine Verbindung herzustellen. Welche anderen Clients sind vorhanden, und warum können sie nicht einfach einen Pfad zu dieser privaten ssh-Datei verwenden, genau wie der Befehl ssh?
~/.ssh/config
‚sIdentityFile
Option für gut ist, mit oder ohne Agent~/.ssh/config
Schlüssel angeben, welcher für welchen Remote-Host verwendet werden soll, damit er genau weiß, welchen er benötigt.ssh-agent
nicht notwendig ist, wenn ein privater Schlüssel nicht durch eine Passphrase geschützt ist?Dies hat den Vorteil,
ssh-agent
dass Sie Ihre Passphrase nur einmal eingeben müssen. Wenn Ihr privater RSA-Schlüssel nicht mit einer Passphrase verschlüsselt ist, ist ssh-agent nicht erforderlich. Derssh
Befehl wäre ein Beispiel für einen Client.quelle
Wenn Sie routinemäßig
ssh
auf verschiedene Computer zugreifen, von denen jeder einen eigenen Schlüssel und eine eigene Passphrase hat,ssh-agent
können Sie beim Ausführen die Passphrase für jeden Schlüssel einmal 1 zu Beginn Ihrer Sitzung eingeben und sich dann bei jedem Computer so oft wie möglich authentifizieren wie Sie möchten, ohne Ihre Passphrase erneut eingeben zu müssen.Ein weiterer Vorteil ist, dass
man
der Agent laut Seite niemals einen privaten Schlüssel über seinen Anforderungskanal sendet. Wenn Sie also zwischen verschiedenen Boxen wechseln, sind Ihre privaten Schlüssel geschützt.1 Sie können die
life
Zeit einstellen, zu der die Schlüssel im Agenten gehalten werden.quelle
Wikipedia-Artikel hat wahrscheinlich die beste Beschreibung:
Nochmals wörtlich aus dem Wikipedia-Artikel:
Es wird normalerweise entweder in die rc-Dateien eines Systems oder eines Benutzers wie
$HOME/.bashrc
oder$HOME/.profile
(für Bash-Shells) eingefügt, damit diessh-agent
festgelegten Umgebungsvariablen vollständig in Ihre Umgebung integriert werden.Auf meinem Fedora 14-System wird es als Teil des X11-Subsystems ziemlich früh gestartet. In dieser Datei
/etc/X11/xinit/xinitrc-common
:Die Variable
$SSH_AGENT
wird dann in anderen X11-Startskripten verwendet, z. B ./etc/X11/xinit/Xclients
:Durch das Einfügen in diese Datei werden die folgenden Umgebungsvariablen als Teil einer übergeordneten Shell festgelegt. Daher sollten alle verzweigten Kinder diese auch haben, zum Beispiel:
Das ist etwas komplexer, aber auf den Punkt gebracht, ist dies im Grunde das, was los ist
ssh-agent
.Beispielsweise wird in GNOME
ssh-agent
tatsächlich pro Benutzer als Startanwendung gestartet:TL; DR
Unterm Strich
ssh-agent
müssen Sie Ihre SSH-Schlüssel nur einmal mit ihrer Passphrase entsperren (vorausgesetzt, sie verfügen über eine Passphrase), und von da an sind sie in ihrer entschlüsselten Form im Arbeitsspeicher (RAM) verfügbar.quelle
„als Clients mit dem ssh-agent - Programm gestartet“ bezieht sich auf die Idee , dass ssh-agent bei (lokaler) Login - Sitzung Initialisierung gestartet wird , so dass alle Programme , die Umgebungsvariablen erhalten
$SSH_AGENT_PID
und$SSH_AUTH_SOCK
die für den Anschluss des Agenten erforderlich sind.Ein weiterer Vorteil, den Umgang mit privaten Schlüsseln aus ssh herauszunehmen, ist, dass ssh-agent durch gpg-agent ersetzt werden kann. Daher können Sie OpenPGP-Schlüssel (mit Authentifizierungsfunktion) für SSH verwenden. Das ist eine schöne Lösung für OpenPGP-Schlüssel auf einer Smartcard.
quelle