J'ai défini un mot de passe lors de la création d'une nouvelle clé SSH sur mon ordinateur portable. Mais, comme je le sais maintenant, cela est très pénible lorsque vous essayez de vous engager ( Git et SVN ) dans un emplacement distant sur SSH plusieurs fois par heure.
Une façon dont je peux penser est de supprimer mes clés SSH et d’en créer de nouvelles. Existe-t-il un moyen de supprimer la phrase secrète tout en conservant les mêmes clés?
Réponse courte:
$ ssh-keygen -p
Vous serez alors invité à entrer l'emplacement du fichier de clés, l'ancienne phrase secrète et la nouvelle phrase secrète (qui peuvent être laissés vides pour ne pas avoir de phrase secrète).
Si vous souhaitez tout faire sur une seule ligne sans invite, procédez comme suit:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Important: Attention, lors de l'exécution des commandes, elles seront généralement consignées dans votre fichier ~/.bash_history
(ou similaire) en texte brut, y compris tous les arguments fournis (c'est-à-dire les phrases secrètes dans ce cas). Il est donc recommandé d’utiliser la première option à moins que vous n’ayez une raison spécifique de faire autrement. Notez cependant que vous pouvez toujours utiliser -f keyfile
sans avoir à spécifier -P
ni -N
, et que le fichier de clés par défaut est ~/.ssh/id_rsa
, de sorte que dans de nombreux cas, il n'est même pas nécessaire.
Vous voudrez peut-être envisager d'utiliser ssh-agent, qui peut mettre la phrase secrète en cache pendant un certain temps. Les dernières versions de gpg-agent prennent également en charge le protocole utilisé par ssh-agent.
Vous voudrez peut-être ajouter les éléments suivants à votre fichier .bash_profile (ou équivalent), qui démarre ssh-agent à la connexion.
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
Sur certaines distributions Linux (Ubuntu, Debian), vous pouvez utiliser:
ssh-copy-id -i ~/.ssh/id_dsa.pub username@Host
Cela va copier l'ID généré sur une machine distante et l'ajouter au trousseau.
$ ssh-keygen -p
a travaillé pour moi
Ouvert git bash. Collé: $ ssh-keygen -p
Appuyez sur Entrée pour l'emplacement par défaut.
Entrez l'ancien mot de passe
Entrez une nouvelle phrase secrète - BLANK
Confirmer la nouvelle phrase de passe - BLANK
BOOM la douleur d'entrer dans la phrase secrète pour git Push avait disparu.
Merci!