Chaque fois que je me connecte à un autre serveur depuis notre serveur sans tête Ubuntu, on me demande le mot de passe de mon fichier de clés. Même si je me suis déjà connecté au serveur.
Avez-vous une idée pourquoi cela peut-être? Ce pourrait être quelque chose d'aussi simple que de ssh-agent
ne pas être en cours d'exécution ou quelque chose.
La même clé sur mon bureau Ubuntu Gnome fonctionne bien. Le serveur et le bureau exécutent Ubuntu 10.10.
ps -ef | grep '[s]sh-agent'
simon 3219 1 0 12:46 ? 00:00:00 ssh-agent
ssh-agent
fonctionne:ps -ef | grep '[s]sh-agent'
Réponses:
Même si l'agent est actif, si certaines variables d'environnement ne sont pas définies, vous n'avez aucune référence à l'agent. De plus, même si tout va bien, l'agent et les variables, l'identité n'est pas automatiquement envoyée à l'agent: c'est une tâche pour
ssh-askpass
, fonctionnant uniquement dans les sessions X.Si vous utilisez bash, créez le fichier
~/.bash_profile
avec ce contenu:modifiez le nom du fichier
~/.ssh/id_dsa
selon vos besoins et ajoutez cette ligne à~/.bash_logout
Une dernière remarque: cela n'interfère pas avec une session gnome, car dans ce cas seul
~/.profile
est sourcé, et vous pouvez bénéficier de l'ssh-askpass
interface graphique qui demande une phrase secrète et l'envoie à lassh-agent
.la source
ssh
dans d'autres machines. Mais ce n'est pas le cas lors de l'utilisationgit
pour pousser ou tirer sur un référentiel public. Avez-vous des idées pour résoudre ce problème également?ssh()
, appelez-lagit()
et changez la dernière ligne de/usr/bin/ssh
à/usr/bin/git
. Ajoutez également une dernière ligne avecexport -f git
.ssh
dans la machine avec lebash_profile
fichier que vous avez créé ci-dessus, il me demande le mot de passe de la clé. Pour une raison quelconque, maintenant, chaque fois que je ssh, il demande avant même d'avoir exécutéssh
ougit
. Voir gist.github.com/942082 pour l'invite que je reçois lorsque je me connecte à la machine incriminée.git
interagir avecssh
, et je ne l'utilise pasgit
pour ne pas pouvoir essayer. J'ai modifié le~/.bash_profile
pour inclure lagit()
fonction que j'ai mentionnée ci-dessus, pour être sûr que mon explication précédente était claire. De plus, il semble d'après la sortie que vous montrez que vous avez modifié la machine serveur, mais tous mes conseils étaient dirigés uniquement vers la machine cliente.git
pousse vers une forge / un référentiel central afin que le fichier soit au bon endroit. Je pense que vous venez de me donner l'astuce / jogged mes pensées. J'ai une invite bash spéciale qui affiche la branche git dupwd
. Je parie que c'est ce qui déclenche la demande de mot de passe lors de la connexion bash alors qu'il tente de git stat avant de rendre l'invite bash!J'ai récemment commencé à utiliser ssh-ident:
https://github.com/ccontavalli/ssh-ident
tout ce que vous avez à faire est d'ajouter quelque chose comme:
dans votre
.bashrc
. Alternativement, vous pouvezln -s /path/to/ssh-ident ~/bin/ssh
ou un autre répertoire de votre PATH avant/bin
et/usr/bin
.la source
Cette question a une assez bonne réponse chez SuperUser .
J'ai trouvé le conseil d'utiliser le trousseau assez utile.
la source