J'ai un peu «supporté» que Github me demande toujours mon nom d'utilisateur et mon mot de passe lorsque je clone un référentiel. Je veux contourner cette étape car c'est une gêne dans mon flux de travail.
J'ai essayé de configurer une clé SSH (ce que j'ai réussi) en utilisant ce guide. https://help.github.com/articles/generating-ssh-keys et j'ai réussi.
Mon problème est que l'on me demande toujours mon mot de passe github et ma phrase secrète lors du clonage d'un référentiel (en utilisant SSH). J'ai cru comprendre qu'après avoir configuré cette clé SSH, je n'aurais plus à le faire.
Je ne sais pas trop quoi demander, alors je vais simplement énoncer mon objectif.
Je veux pouvoir cloner des référentiels sans avoir à mettre mes informations Github tout le temps .
Que manque-t-il avec ma clé SSH? Si quelqu'un peut fournir des conseils ou des ressources, je l'apprécierais, car je me suis toujours senti un peu perdu en matière d'authentification SSH dans GitHub.
D'après mes connaissances, il s'agit d'une commande qui teste si les choses fonctionnent correctement, voici la sortie de ma console:
~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.
Lorsque j'entre mon mot de passe, cela devrait-il échouer en premier? Ensuite, lorsque j'entre ma phrase secrète, elle passe.
pageant
, qui fait partie deputty
. Dans tous ces cas, l'objectif est le même: vous entrez la phrase secrète une seule fois après avoir démarré votre PC, les agents du gestionnaire de clés le transmettront à ssh lors des utilisations suivantes jusqu'à ce que vous redémarriez.Réponses:
Si vous travaillez avec des
HTTPs
URL, il vous demandera toujours votre nom d'utilisateur / mot de passe.Si vous utilisez correctement
SSH
lors du clonage / réglage des télécommandes. Assurez-vous ensuite que vous disposez d'un agent ssh pour mémoriser votre mot de passe. De cette façon, vous n'entrerez votre mot de passe qu'une seule fois par session de terminal.Si cela est toujours trop ennuyeux, définissez simplement une clé ssh sans mot de passe.
la source
git remote -v
. Pour passer de https à ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Ajouter une identité sans trousseau
Il peut arriver que vous ne souhaitiez pas que la phrase secrète soit stockée dans le trousseau, mais que vous ne souhaitiez pas avoir à saisir la phrase secrète encore et encore.
Vous pouvez faire ça comme ceci:
Cela vous demandera le mot de passe, entrez-le et il ne vous le demandera pas avant de redémarrer.
Ajouter une identité à l'aide du trousseau
Comme le souligne @dennis dans les commentaires, pour conserver la phrase secrète lors des redémarrages en la stockant dans votre trousseau, vous pouvez utiliser l'
-K
option (-k
pour Ubuntu) lors de l'ajout de l'identité comme ceci:Encore une fois, cela vous demandera la phrase secrète, entrez-la et cette fois, elle ne demandera plus jamais cette identité.
la source
-K
option pour stocker la phrase secrète dans votre trousseau lors de l'ajout, par exemplessh-add -K ~/.ssh/id_rsa
-k
pour moi ... (Linux Mint / Ubuntu 14.04 base) mais oui! enfin trié cela ...ssh-add
ajoutera automatiquement~/.ssh/id_rsa
(parmi d'autres fichiers). Et il n'y a aucune raison d'envoyer la sortie à/dev/null
; beaucoup mieux pour voir le rapport de ce qu'il a fait.Sur Mac OSX, vous pouvez ajouter votre clé privée au trousseau en utilisant la commande:
Si votre clé privée est stockée dans ~ / .ssh et s'appelle id_rsa:
Vous serez ensuite invité à entrer votre mot de passe, qui sera stocké dans votre trousseau.
Modifier - Gérer le redémarrage
Afin de ne pas avoir à saisir votre mot de passe même après un redémarrage, ajoutez ce qui suit à votre fichier de configuration ssh (généralement situé à ~ / .ssh / config)
la source
~/.ssh
J'ai essayé toutes les réponses ici et aucune de ces réponses n'a fonctionné ! Mon mot de passe ne persisterait pas entre les sessions / redémarrages de mon Mac.
Ce que j'ai découvert en lisant cet OpenRadar et cette discussion sur Twitter, c'est qu'Apple a délibérément changé le comportement de ssh-agent dans macOS 10.12 Sierra pour ne plus charger automatiquement les précédentes clés SSH. Afin de maintenir le même comportement qu'El Cap, j'ai fait ce qui suit:
ssh-add -K ~/.ssh/id_rsa
Remarque: modifiez le chemin d'accès à l'emplacement de votre clé id_rsa.
ssh-add -A
Créez (ou modifiez s'il existe) le
~/.ssh/config
fichier suivant :Et maintenant mon mot de passe est mémorisé entre les redémarrages de mon Mac!
la source
ssh-add -A
n'est pas nécessaire si vous n'avez qu'une seule clé~/.ssh/id_rsa
)Vous pouvez supprimer la phrase secrète de la clé
ou vous pouvez courir
vous obtenez une invite pour le fichier de clés. Par défaut
~/.ssh/id_rsa
, appuyez sur EntréeVous serez invité à saisir la phrase de passe actuelle.
Ensuite, il y aura une invite pour une nouvelle phrase de passe, appuyez sur Entrée
la source
-K
,-k
,-A
ne fonctionne pas pour moi).Exécutez simplement la commande suivante:
Il ne vous demandera plus jamais d'entrer à nouveau le mot de passe.
la source
ssh-add
juste "ajoute des identités de clé privée à l'agent d'authentification", et l'-K
option le rend simplement "Lors de l'ajout d'identités, chaque phrase secrète sera également stockée dans le trousseau de l'utilisateur."Assurez-vous que vous utilisez également ssh pour votre référentiel
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)
N'utilisez pas https, si votre télécommande utilise https, elle continuera à demander un mot de passe, même si vous avez ajouté la clé publique à Github et ajouté la clé privée à ssh-agent. Ci-dessous vous demandera toujours un mot de passe
mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)
la source
git pull
etgit push
. J'ai changé mon URL du type HTTPS au type SSH, et cela a fonctionné - j'aigit pull
cessé de demander un mot de passe.git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
J'ai dû exécuter:
Remarque : vous devrez recommencer après chaque redémarrage. Si vous voulez l'éviter, entrez-le dans votre fichier " .bashrc " qui se trouve sous
C:\Users\<<USERNAME>>\.bashrc
Windows. Il est probablement caché, alors assurez-vous que vous pouvez voir les fichiers cachés.Solution trouvée ici .
la source
Si vous utilisez Windows, cela a fonctionné pour moi:
Il vous demandera une phrase secrète dans la deuxième commande, et c'est tout.
la source
Découvrez la réponse originale de StackExchange ici
la source
Essayez
ssh-agent
comme il est expliqué ici: https://help.github.com/articles/working-with-ssh-key-passphrasesla source
J'ai récemment mis à niveau vers macOS Mojave, et installé certains outils via homebrew, qui semblait remplacer la version d'Apple
ssh-add
par une autre. Ma version par défaut dessh-add
n'avait pas l'-K
option. Cela a conduit à l'erreur suivante:# ssh-add: illegal option -- K
Vous pouvez voir quelle version de
ssh-add
vous avez en exécutantwhich ssh-add
.(Le mien était entreposé
/usr/local/bin/ssh-add
)Pour résoudre ce problème, j'ai dû pointer la clé de la version d'Apple :
Git / GitHub a parfaitement fonctionné par la suite. Pour plus d'informations, voir: Erreur: ssh-add: option illégale - K
la source
Pour Mac OSX Sierra, j'ai trouvé que les correctifs suggérés dans le problème github pour Open Radar ont résolu mon problème. On dirait que Sierra a changé le comportement par défaut (j'ai commencé à avoir ce problème après la mise à niveau).
Celui-ci je l'ai trouvé particulièrement utile: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061
Cela a abouti à mon identité ajoutée à l'agent, après avoir couru
Pour résumer, dans OSX.12:
devrait se traduire par:
EDIT: J'ai remarqué que la prochaine fois que je faisais un redémarrage complet (alias l'agent s'est arrêté et redémarré), cela ne fonctionnait plus. La solution la plus complète est ce que @ChrisJF a mentionné ci-dessus: créer un
~/.ssh/config
fichier. Voici ma sortie:Vous pouvez ajouter autant d'
IdentityFile
entrées que vous le souhaitez, mais il s'agit de la configuration par défaut. C'est la réponse "tendance" sur le lien openradar ci-dessus, ATM également.la source
Travaillé dans LinuxMint / Ubuntu
Effectuez les étapes suivantes
Étape 1:
Enregistrez les lignes ci-dessous dans le fichier
Étape 2:
Ouvrez le terminal et ajoutez le jeu de clés à ssh-add
fournir la phrase secrète.
la source
J'avais déjà défini un mot de passe, mais pour une raison quelconque, il ne le reconnaîtrait plus. J'ai donc ajouté à nouveau le fichier d'identité à mon trousseau
ssh-add -K
et il a cessé de demander mon mot de passe.la source
C'est ce qui a fonctionné pour moi:
la source
Le problème semble être dû au fait que vous clonez à partir de HTTPS et non de SSH. J'ai essayé toutes les autres solutions ici, mais je rencontrais toujours des problèmes. Cela l'a fait pour moi.
En utilisant
osxkeychain helper
ainsi:Découvrez si vous l'avez installé.
git credential-osxkeychain
S'il n'est pas installé, vous serez invité à le télécharger dans le cadre des outils de ligne de commande Xcode.
S'il est installé, indiquez à Git d'utiliser
osxkeychain helper
lacredential.helper
configuration globale :git config --global credential.helper osxkeychain
La prochaine fois que vous clonerez une URL HTTPS, vous serez invité à saisir le nom d'utilisateur / mot de passe et à autoriser l'accès au trousseau OSX. Après avoir fait cela la première fois, il devrait être enregistré dans votre trousseau et vous n'aurez pas à le saisir à nouveau.
la source
Cette réponse s'adresse principalement aux utilisateurs de Windows et est également pertinente si vous rencontrez des problèmes de clonage avec tfs, github ou gitlab sur un autre système d'exploitation.
Le mode d'authentification par défaut lors de l'utilisation de SSH est la clé privée. Chaque fois que cela échoue pour une raison quelconque, l'agent ssh revient à l'authentification basée sur le nom d'utilisateur et le mot de passe.
Il y a plusieurs raisons pour lesquelles l'authentification par clé basée par défaut peut avoir échoué. Voici les cas les plus courants:
a) L'agent ssh ne peut pas trouver le fichier de clé privée par défaut qui est id_rsa , et aucun autre chemin de clé n'est spécifié explicitement.
b) La clé publique stockée sur le serveur est incorrecte.
c) Le chemin que vous essayez de cloner est incorrect.
Dans tous les cas, pour résoudre le problème, exécutez d'abord la commande git clone avec une journalisation détaillée avec la commande:
Vous pouvez parcourir chaque étape du journal pour obtenir une intuition de ce que pourrait être le problème.
Dépannage en cas de (a)
Si vous souhaitez spécifier une clé différente pour l'authentification, utilisez la commande suivante:
Dépannage en cas de (b)
Dépannage en cas de (c)
la source
Si vous utilisez l'URL ssh pour git, lorsque vous êtes invité à entrer le mot de passe pour ssh, entrez le nom d'utilisateur comme " git " et le mot de passe comme mot de passe de connexion de votre système
la source
HTTPS
àSSH
résolu mon problème. Merci @MichaelR, votre article a été très utile, même si je n'en ai rien lu: DJe voudrais ajouter une réponse pour ceux qui peuvent encore avoir besoin d'entrer le mot de passe car ils ont défini IdentitiesOnly comme oui. Cela peut être dû à plusieurs clés et au fichier d'identité, étant des clés pour git ou serveur.
Après avoir généré la clé et l'avoir copiée sur le serveur:
J'ai trouvé que ça ne marchait pas.
Ensuite, je suis allé vérifier le
~/.ssh/config
dossier, je l'ai vu en bas:Ensuite, j'ajoute ceci ci-dessus:
Je peux simplement me connecter en entrant
ssh 12gpu
.Ensuite, vous pouvez ajouter plusieurs clés ssh en utilisant vos noms préférés, et vous n'avez qu'à ajouter les paramètres tels que les quatre lignes ci-dessus au fichier de configuration.
Hôte est le nom que vous souhaitez saisir lorsque vous vous connecterez au serveur ultérieurement; le HostName est l'IP ou le domaine du serveur comme github.com; Utilisateur est le nom d'utilisateur que vous vous connectez au serveur, comme le nom d'utilisateur ou git pour github ou gitlab; et IdentityFile est le fichier dans lequel vous stockez la clé que vous avez générée.
la source
Généralement, voici les étapes pour vous permettre de vous connecter à distance à votre serveur en utilisant ssh sans mot de passe:
Créer une paire de clés privée et publique rsa
Copiez votre clé publique et connectez-vous à votre serveur distant
Ajoutez votre clé publique à .ssh / authorized_keys
Si vous avez plusieurs clés ssh sur votre ordinateur, vous pouvez ajouter votre clé à l'aide de ssh-add
$ ssh-add /path/to/private/key
Essayez ensuite ssh sur votre serveur
$ ssh username@your_ip_address
Source: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html
la source
N'utilisez pas
ssh
l'url distante fournie par Githubhttps
.la source
Si vous utilisez Windows et GIT sans outils tiers et que votre clé n'est pas sécurisée par un mot de passe / phrase de passe, utilisez ceci:
Ajoutez votre hôte git-server au fichier "config" comme ceci:
Enregistrez le fichier et clonez le référentiel comme ceci:
git clone ssh: //myhostname.com/git-server/repos/picalc.git
Vous pouvez utiliser des paramètres de configuration supplémentaires pour l'entrée d'hôte de fichier "config". Ceux-ci peuvent être trouvés dans votre dossier d'installation git local, par exemple " C: \ Program Files \ Git \ etc \ ssh \ ssh_config ". Extrait:
la source
Même problème pour moi et la solution était:
Voir ce doc github pour convertir l'URL de la télécommande de https en ssh. Pour vérifier si l'URL de remote est ssh ou https, utilisez git remote -v. Pour passer de https à ssh: git remote set-url origin [email protected]: USERNAME / REPOSITORY.git @jeeYem
la source
Mobaxterme avait une interface UI pour cela
setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]
la source
Clé SSH - Toujours demander un mot de passe et une phrase secrète
Si sur Windows et en utilisant PuTTY comme générateur de clé SSH , cette solution rapide et facile s'est avérée être la seule solution de travail pour moi en utilisant une ligne de commande Windows simple:
pageant.exe
etplink.exe
.ppk
extension"full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"
( doit être indiqué). Cela exécutera lepageant
service et enregistrera votre clé (après avoir entré le mot de passe).GIT_SSH=full\path\to\plink.exe
( ne doit pas être indiquée entre guillemets). Cela redirigera les commandes liées à git ssh-communication versplink
celles qui utiliseront lepageant
service pour l'authentification sans demander à nouveau le mot de passe.Terminé!
Remarque 1: cette documentation met en garde contre certaines particularités lors de l'utilisation
GIT_SHH
des paramètres de variable d'environnement. Je peuxpush
,pull
,fetch
avec un certain nombre de paramètres supplémentaires à la commande et tout fonctionne très bien pour moi (sans qu'il soit nécessaire d'écrire un script supplémentaire tel que suggéré dans celui - ci).Remarque 2: Le chemin vers l'
PuTTY
instalation est généralement dansPATH
ainsi peut être omis. Quoi qu'il en soit, je préfère spécifier les chemins complets.Automatisation:
Le fichier de commandes suivant peut être exécuté avant d'utiliser git à partir de la ligne de commande. Il illustre l'utilisation des paramètres:
Quoi qu'il en soit, j'ai la
GIT_SSH
variable définieSystemPropertiesAdvanced.exe > Environment variables
etpageant.exe
ajoutée commeRun
clé de registre (*).(*) Étapes pour ajouter une
Run
clé de registre>regedit.exe
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
Edit > New > String Value
Edit > Modify...
(ou double-cliquer)pageant.exe
etpublic key
, par exemple,"C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"
(notez que les%ProgramFiles%
variables etc. ne fonctionnent pas ici sauf si vous choisissezExpandable string value
à la place de l'String value
étape 3.).la source
Comme expliqué dans Clonage d'un dépôt Git à partir de VSTS sur SSH demande un mot de passe! Inattendu
Le problème peut être dû à l'échec de l'authentification par clé publique, il demande donc le mot de passe de mon compte d'entreprise.
Cela ne se produirait pas si l'authentification par clé publique réussissait.
Vous pouvez donc vérifier id_rsa.pub et même en créer un nouveau.
la source
Je pense que la réponse de @sudo bangbang devrait être acceptée.
Lorsque vous générez la clé ssh, vous appuyez simplement sur "Entrée" pour ignorer la saisie de votre mot de passe lorsqu'il vous invite à configurer le mot de passe.
Cela signifie que vous N'AVEZ PAS BESOIN d'un mot de passe lorsque vous utilisez la clé ssh, alors souvenez-vous lorsque vous générez une clé ssh, N'entrez PAS de mot de passe, appuyez simplement sur 'Entrée' pour l'ignorer.
la source