Je suis ssh dans un hôte distant (linux, fedora) et je veux y faire fonctionner ssh (git avec bitbucket). Il y a ssh-agent en cours d'exécution sur cette machine,
$ ps -e|grep sh-agent
2203 ? 00:00:00 ssh-agent
mais quand je veux git, il me faut saisir la phrase secrète
$ git pull
Enter passphrase for key '/user/wgong/home/.ssh/id_rsa':
Remarque: si j'opère sur cette machine localement, il ne me demandera pas de saisir la phrase secrète
Réponses:
À mon avis, la meilleure façon d'utiliser ssh
Avant d'utiliser Git, ajoutez votre clé à ssh-agent
Démarrez ssh-agent s'il n'est pas démarré:
Ajoutez votre clé privée à l' aide de ssh-add
Vérifiez si la clé est ajoutée (le paramètre est un L minuscule):
Essayez de vous connecter à votre serveur Git:
Vous pouvez maintenant utiliser Git sans invites de phrase secrète supplémentaires.
D'autres moyens
https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt
la source
.bashrc
?eval
est nécessaire car il génère des commandes qui exportent les variables d'environnement comme SSH_AUTH_SOCK qui sont nécessaires. unix.stackexchange.com/questions/351725/…Si vous avez déjà
ssh-agent
exécuté, vous pouvez ajouter la clé et vous devrez saisir la phrase secrète une fois, et une seule fois pour cette session.Vous ne dites pas quel système d'exploitation vous utilisez, mais s'il se trouve que c'est Linux & Gnome, l'application "Mots de passe et clés" (nom CLI:)
seahorse
peut les gérer afin qu'ils soient déverrouillés lorsque vous vous connectez (pas de phrase secrète requise) . D'autres environnements de bureau Linux ont leurs propres gestionnaires. Je ne sais pas ce que les autres OS font ici.la source
La principale raison de la phrase secrète est que votre clé est cryptée, comparez les deux:
non crypté
chiffré
Vous devez donc effectuer l'une des opérations suivantes:
~/.ssh/config
et spécifiez un fichier d'identité différent (IdentityFile
).ssh-add -l
pour répertorier toutes vos identités (puis comparez avec votre local) et vérifiez avec Stash si vous utilisez les bonnes clés (elles existent dans la configuration de Stash).Si vous connaissez la phrase secrète et que vous souhaitez l'automatiser, essayez la solution de contournement suivante:
Dépannage:
eval "$(ssh-agent -s)"
).GIT_TRACE=1 git pull
ou avecGIT_SSH_COMMAND="ssh -vv"
(Git 2.3.0+) pour déboguer à nouveau votre commande.Vous pouvez essayer de contourner la demande de phrase secrète (qui la redirigera vers
true
), mais je ne pense pas que cela vous aidera. S'il le demande, il y a une raison à cela et c'est fondamentalement nécessaire.la source
Le
ssh-add
programme démarre un agent qui peut contenir (et fournir) votre phrase secrète. La façon de l'utiliser à distance est dans un parent de votre shell interactif (pour que l'agent ne s'arrête pas).Voici quelques questions connexes:
Maintenant ... connexion à distance , en règle générale, votre commande ne se connecte pas en tant que telle, elle ne démarre donc pas
ssh-add
. Vous pouvez contourner cela, en exécutant un script quissh-agent
ssh-add
Le point faible est la deuxième étape: vous seriez toujours invité à saisir la phrase secrète, sauf si vous affaiblissez votre sécurité en utilisant une clé qui n'a pas de phrase secrète . Certaines personnes font cela, la plupart des gens déconseillent.
la source
ssh-add
ne démarre pas l'agent. Il se connecte à un agent déjà en cours d'exécution.Vous pouvez facilement supprimer la phrase secrète de votre clé en utilisant la commande suivante
À la première invite, entrez le chemin du fichier (ou appuyez sur Entrée pour modifier la valeur par défaut) Deuxième invite, entrez l'ancienne phrase secrète Prochaine invite, appuyez simplement sur entrée pour annuler la phrase secrète
On dirait que c'est le moyen le plus simple!
la source
Vous obtiendrez toujours une invite de mot de passe pour déchiffrer la clé privée même si elle est chargée dans
ssh-agent
jusqu'à ce que la clé publique SSH correspondante soit ajoutée dans la télécommande~/.ssh/authorized_keys
.Reproduire:
Assez déroutant. Le mot de passe de connexion SSH à distance serait suffisant dans ce cas.
Je peux supposer que cela empêche d'ajouter votre clé publique (qui est associée à une clé privée cryptée) sans connaître le mot de passe de cryptage pour la clé privée correspondante. Il s'agit de toute façon d'une procédure de connexion à distance.
la source