Verwenden Sie einen angegebenen Schlüssel von ssh-agent
Wie kann ich git mitteilen, welchen privaten Schlüssel ich verwenden soll? Ich möchte in einer bestimmten Situation einen bestimmten SSH-Schlüssel verwenden.
Mein Problem ist, dass ssh selbst dann die Schlüssel meines ssh-Agenten in der Reihenfolge verwendet, in der sie hinzugefügt werden, wenn ich "-i something " spezifiziere.
Meine spezifische situation:
- Ich habe zwei Github-Benutzer mit jeweils einem eigenen Schlüssel Ich möchte - zum Beispiel über eine ssh-config - für jeden Klon angeben, welcher Schlüssel Verwendung:
Host USER1.git
Hostname github.com
User git
IdentityFile ~/.ssh/USER1.id_rsa
ssh -vt USER1.git
verwendet weiterhin USER2.id_rsa
, wenn dies der Schlüssel ist, der zuerst zu ssh-agent hinzugefügt wurde.
3 answers
Ich habe es endlich zum Laufen gebracht:
Host USER1.git
User git
HostName github.com
IdentityFile ~/.ssh/USER1.id_rsa
Host USER2.git
User git
HostName github.com
IdentityFile ~/.ssh/USER2.id_rsa
- Einrückung zählt.
- Tun Sie
ssh-add -l
und stellen Sie sicher, dass beide Schlüssel hinzugefügt wurden.- Kopiere/füge jeden Pfad von
ssh-add -l
in die entsprechende Zeile in~/.ssh/config
ein, um Tippfehler zu vermeiden. Wenn es einen~/.ssh/config
identityfile-Pfadtipp für USER1 gibt, wird stattdessen der falsche Schlüssel (der Schlüssel von USER2) verwendet.
- Kopiere/füge jeden Pfad von
Ich habe die Anweisungen bei BitBucket. Sie sollten für GitHub funktionieren, da der einzige Unterschied HostName
: http://confluence.atlassian.com/pages/viewpage.action?pageId=271943168#ConfiguringMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile
Um dies mit Agent Forwarding auf einem Remote-Server zum Laufen zu bringen, versuchen Sie den Vorschlag von @stijn-hoop unten (im Kommentarbereich dieser Antwort).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-02-26 07:34:07
Es geht darum, die öffentliche Schlüsseldatei in der Direktive IdentityFile
zu verwenden.
Host USER1.git
User git
HostName github.com
IdentityFile ~/.ssh/USER1.id_rsa.pub
Host USER2.git
User git
HostName github.com
IdentityFile ~/.ssh/USER2.id_rsa.pub
Wenn wir den privaten Schlüssel in der SSH-Konfiguration angeben, kann der SSH-Agent den richtigen Schlüssel nicht auswählen, wenn der private Schlüssel verschlüsselt ist.
Eine ähnliche Frage zu Stackexchange: https://unix.stackexchange.com/a/495785/264704
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-02-16 05:40:13
Verwenden Sie IdentitiesOnly yes
unter diesen Hosts, in .ssh/config.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-11-17 18:50:46