Jedes Mal, wenn ich von unserem kopflosen Ubuntu-Server aus einen SSH-Vorgang auf einem anderen Server durchführe, werde ich nach dem Kennwort für meine Schlüsseldatei gefragt. Auch wenn ich vorher eine Verbindung zum Server hergestellt habe.
Hast du vielleicht eine Idee warum das so ist? Es könnte etwas so Einfaches sein, als würde ssh-agent
es gerade nicht laufen oder so.
Der gleiche Schlüssel auf meinem Ubuntu Gnome-Desktop funktioniert einwandfrei. Sowohl auf dem Server als auch auf dem Desktop wird Ubuntu 10.10 ausgeführt.
ps -ef | grep '[s]sh-agent'
simon 3219 1 0 12:46 ? 00:00:00 ssh-agent
ssh-agent
Folgendes ausgeführt wird:ps -ef | grep '[s]sh-agent'
Antworten:
Auch wenn der Agent aktiv ist und bestimmte Umgebungsvariablen nicht festgelegt sind, haben Sie keinen Verweis auf den Agenten. Darüber hinaus wird die Identität nicht automatisch an den Agenten gesendet, auch wenn alles in Ordnung ist, der Agent und die Variablen. Dies ist eine Aufgabe
ssh-askpass
, die nur in X-Sitzungen ausgeführt wird.Wenn Sie bash verwenden, erstellen Sie die Datei
~/.bash_profile
mit folgendem Inhalt:Ändern Sie den Dateinamen
~/.ssh/id_dsa
nach Ihren Wünschen und fügen Sie diese Zeile hinzu~/.bash_logout
Ein letzter Hinweis: Dies stört eine Gnomensitzung nicht, da in diesem Fall nur
~/.profile
Quellen verwendet werden und Sie von derssh-askpass
grafischen Oberfläche profitieren können, die nach einer Passphrase fragt und diese an das sendetssh-agent
.quelle
ssh
in andere Maschinen einzusteigen . Bei Verwendunggit
von Push oder Pull für ein öffentliches Repository ist dies jedoch nicht der Fall . Haben Sie Ideen, wie ich das auch lösen könnte?ssh()
, rufen Sie sie aufgit()
und ändern Sie die letzte Zeile von/usr/bin/ssh
in/usr/bin/git
. Fügen Sie auch eine letzte Zeile mit hinzuexport -f git
.ssh
in den Computer mit derbash_profile
oben erstellten Datei einsteige, fragt er mich nach dem Kennwort des Schlüssels. Aus irgendeinem Grund frage ich jetzt jedes Mal, wenn ich ssh drin habe, noch bevor ichssh
oder ausgeführt habegit
. Unter gist.github.com/942082 finden Sie die Eingabeaufforderung, die ich erhalte, wenn ich mich beim fehlerhaften Computer anmelde .git
mit interagieressh
, und ich benutze es nicht,git
damit ich es nicht versuchen kann. Ich habe das geändert~/.bash_profile
, um diegit()
oben erwähnte Funktion aufzunehmen, um sicherzugehen, dass meine vorherige Erklärung klar war. Aus der von Ihnen angezeigten Ausgabe geht außerdem hervor, dass Sie den Server-Computer geändert haben, aber alle meine Ratschläge waren nur an den Client-Computer gerichtet.git
auf ein zentrales Forge / Repository schiebe, damit die Datei am richtigen Ort ist. Ich denke, du hast mir gerade den Hinweis gegeben / meine Gedanken aufgerüttelt. Ich habe eine spezielle Bash-Eingabeaufforderung, die den Git-Zweig der anzeigtpwd
. Ich wette, das ist es, was die Passwortanforderung bei der Bash-Anmeldung auslöst, wenn versucht wird, stat zu setzen, bevor die Bash-Eingabeaufforderung ausgegeben wird!Ich habe kürzlich begonnen, ssh-ident zu verwenden:
https://github.com/ccontavalli/ssh-ident
Alles was Sie tun müssen, ist etwas hinzuzufügen wie:
in deinem
.bashrc
. Alternativ können Sieln -s /path/to/ssh-ident ~/bin/ssh
vor/bin
und auch ein anderes Verzeichnis in Ihrem PATH verwenden/usr/bin
.quelle
Diese Frage hat SuperUser gut beantwortet .
Ich fand den Hinweis, Schlüsselbund zu verwenden, ziemlich nützlich.
quelle