J'ai cloné un référentiel Git de mon compte GitHub vers mon PC.
Je veux travailler avec mon PC et mon ordinateur portable, mais avec un seul compte GitHub.
Lorsque j'essaie de pousser ou de tirer de GitHub à l'aide de mon PC, cela nécessite un nom d'utilisateur et un mot de passe, mais pas lorsque j'utilise l'ordinateur portable!
Je ne veux pas taper mon nom d'utilisateur et mon mot de passe chaque fois que j'interagis avec origin
. Qu'est-ce que j'oublie ici?
Réponses:
Une cause courante est le clonage utilisant la valeur par défaut (HTTPS) au lieu de SSH. Vous pouvez corriger cela en allant dans votre référentiel, en cliquant sur "Cloner ou télécharger", puis en cliquant sur le bouton "Utiliser SSH" au-dessus du champ URL et en mettant à jour l'URL de votre télécommande d'origine comme ceci:
Ceci est documenté sur GitHub: Passer des URL distantes de HTTPS à SSH .
la source
git remote set-url origin git://new.url.here
)git remote set-url origin https://name:[email protected]/repo.git
(extrait d'un commentaire ici)Permission denied (publickey)
utilisation de ce guide: help.github.com/articles/generating-ssh-keys .Authentification permanente avec les référentiels Git
Exécutez la commande suivante pour activer la mise en cache des informations d'identification :
Vous devez également spécifier l' expiration de la mise en cache ,
Après avoir activé la mise en cache des informations d'identification, il sera mis en cache pendant 7200 secondes (2 heures) .
la source
git remote set-url origin https://[email protected]/<owner>/<repo>.git
Cela fonctionne également avec 2FAfatal: protocol 'https' is not supported
Je viens de rencontrer le même problème, et la solution la plus simple que j'ai trouvée était d'utiliser l'URL SSH au lieu de HTTPS:
Et pas ça:
Vous pouvez maintenant valider avec juste la clé SSH au lieu de
username
etpassword
.la source
En plus de passer à SSH, vous pouvez également continuer à utiliser HTTPS, si cela ne vous dérange pas de mettre votre mot de passe en texte clair. Mettez ceci dans votre
~/.netrc
et il ne vous demandera pas votre nom d'utilisateur / mot de passe (au moins sur Linux et Mac):Ajout (voir le deuxième commentaire de VonC): sous Windows, le nom du fichier est
%HOME%\_netrc
.Lisez également le premier commentaire de VonC au cas où vous voudriez crypter.
Un autre ajout (voir le commentaire de user137717) que vous pouvez utiliser si vous avez Git 1.7.10 ou plus récent .
Cachez votre mot de passe GitHub dans Git en utilisant un assistant d'identification :
Cela fonctionne également sur Linux, Mac et Windows.
la source
%HOME%\_netrc
(au lieu de~/.netrc
). Voir également stackoverflow.com/a/18362082/6309 pour crypter ce fichier.Pour les non initiés qui sont confus par les réponses précédentes, vous pouvez faire:
Qui répondra avec quelque chose comme
Ensuite, vous pouvez exécuter la commande que beaucoup d'autres ont suggérée, mais maintenant vous connaissez votre nom et votre référence d'en haut, vous pouvez donc simplement couper et coller
yourname/yourrepo.git
de ce qui précède dans:la source
paraphrase
chaque fois. Je n'en ai pas installéyourrepo
?git remote -v
et voir ce qui sortSi vous utilisez SSH et votre clé privée est cryptée avec un mot de passe, alors vous serez toujours invité à entrer le mot de passe / mot de passe pour la clé privée lorsque vous effectuez des opérations de réseau avec Git comme
push
,pull
etfetch
.Utilisez ssh-agent pour enregistrer les informations d'identification de mot de passe / mot de passe de clé privée
Si vous voulez éviter d'avoir à saisir votre mot de passe à chaque fois, vous pouvez utiliser
ssh-agent
pour stocker vos informations d'identification de mot de passe de clé privée une fois par session de terminal, comme je l'explique dans ma réponse à Impossible d'ouvrir une connexion avec votre agent d'authentification :Dans un Bash msysgit Windows, vous devez évaluer la sortie de
ssh-agent
, mais je ne sais pas si vous devez faire de même dans d'autres environnements de développement et systèmes d'exploitation.ssh-add
recherche une clé privée dans votre.ssh
dossier de départ appeléeid_rsa
, qui est le nom par défaut, mais vous pouvez passer un chemin de fichier à une clé avec un nom différent.Tuer l'agent
Lorsque vous avez terminé votre session de terminal, vous pouvez arrêter
ssh-agent
avec le drapeau d' arrêt-k
:Comme expliqué dans le
ssh-agent
manuel :Délai d'expiration facultatif
En outre, il peut prendre un paramètre de délai d'expiration facultatif comme ceci:
où
<timeout>
est le format<n>h
des<n>
heures,<n>m
pour<n>
minutes, et ainsi de suite.Selon le
ssh-agent
manuel :Voir cette page pour plus de formats d'heure .
Avertissement de sécurité pour les utilisateurs de Cygwin
Les utilisateurs de Cygwin doivent être conscients d'un risque potentiel de sécurité lié à l'utilisation de ssh-agent dans Cygwin :
Et au lien cité :
la source
Source: Configurer Git
La commande suivante enregistrera votre mot de passe en mémoire pendant un certain temps (pour Git 1.7.10 ou plus récent).
la source
Lorsque vous utilisez https pour Git pull & push, configurez simplement
remote.origin.url
votre projet pour éviter de saisir un nom d'utilisateur (ou / et un mot de passe) chaque fois que vous appuyez.Comment configurer
remote.origin.url
:@Update - utilisation
ssh
Je pense que l'utilisation du
ssh
protocole est une meilleure solution quehttps
, même si l'étape de configuration est un peu plus complexe.Étapes approximatives:
ssh-keygen
sous Linux, sur Windows,msysgit
fournir des commandes similaires.~/.ssh
. Et ajoutez-le à l'agent ssh via lassh-add
commande.remote.origin.url
du référentiel Git enssh
style, par exemple,[email protected]:myaccount/myrepo.git
Conseils:
@Update - Bascule entre
https
etssh
protocole.Un simple changement
remote.origin.url
suffira, ou vous pouvez éditerrepo_home/.git/config
directement pour changer la valeur (par exemple en utilisantvi
sous Linux).Habituellement, j'ajoute une ligne pour chaque protocole et commente l'un d'eux en utilisant
#
.Par exemple
la source
git-fetch(1)
mentionne cela uniquement pour les URL basées surgit
/ssh
.https://username:[email protected]/
toute sécurité. Voir stackoverflow.com/questions/4980912/…Vous pouvez mettre en cache votre mot de passe GitHub dans Git:
Suivez simplement les instructions de la documentation officielle de GitHub .
Après avoir suivi les instructions du lien ci-dessus, vous devriez pouvoir pousser / tirer vers / depuis votre référentiel sans taper à chaque fois votre nom d'utilisateur / mot de passe.
la source
Voici une autre option:
Au lieu d'écrire
Vous pourriez écrire:
Évidemment, avec la plupart des shells, cela entraînera la mise en cache du mot de passe dans l'historique, alors gardez cela à l'esprit.
la source
Ce qui a fonctionné pour moi, c'est d'éditer
.git/config
et d'utiliserIl va sans dire que c'est un moyen non sécurisé de stocker votre mot de passe, mais il existe des environnements / cas où cela peut ne pas être un problème.
la source
Si la clé ou le
.netrc
fichier SSH ne fonctionnait pas pour vous, alors une autre solution simple, mais moins sécurisée, qui pourrait fonctionner pour vous est git-credential-store - Aide pour stocker les informations d'identification sur le disque:Par défaut, les informations d'identification seront enregistrées dans un fichier
~/.git-credentials
. Il sera créé et écrit dans.Veuillez noter que l'utilisation de cette aide stockera vos mots de passe non chiffrés sur le disque, protégés uniquement par les autorisations du système de fichiers. Si cela peut ne pas être un compromis de sécurité acceptable.
la source
J'ai eu le même problème.
J'ai donc changé le
.git/config
fichier de mon projet,à
et ajouté la clé publique SSH au profil Git qui est en cours de configuration.
Pour la clé publique SSH:
la source
cat ~/.ssh/id_rsa.pub
obtenir la clé rsa et coller dans le paramètre de portail Web git.Mise à jour pour HTTPS:
GitHub a lancé un nouveau programme pour Windows qui stocke vos informations d'identification lorsque vous utilisez HTTPS:
Utiliser:
Téléchargez le programme ici
Une fois que vous exécutez le programme, il modifiera votre
.gitconfig
fichier. Vérifiez à nouveau s'il a édité le bon.gitconfig
au cas où vous en auriez plusieurs. S'il n'a pas modifié le bon, ajoutez ce qui suit à votre.gitconfig
REMARQUE le saut de ligne après
[credential]
. C'est requis.Ouvrez votre client de ligne de commande et essayez
git push origin master
une fois. S'il vous demande un mot de passe, entrez-le et vous avez terminé. Mot de passe enregistré!la source
Pour les utilisateurs de Windows Git, après l'exécution
git config --global credential.helper store
, s'il demande toujours un mot de passe, vous feriez mieux de vérifier où le fichier de configuration est écrit, en utilisant cette commandeDans mon cas, après avoir modifié manuellement le fichier de configuration «C: \ Program Files \ Git \ mingw64 \ etc \ gitconfig» et ajouté le texte suivant, cela a fonctionné.
la source
Vous avez essentiellement deux options.
Si vous utilisez le même utilisateur sur les deux machines, vous devez copier la clé .pub sur votre PC, donc GitHub sait que vous êtes le même utilisateur.
Si vous avez créé un nouveau fichier .pub pour votre PC et que vous souhaitez traiter les machines comme des utilisateurs différents, vous devez enregistrer le nouveau fichier .pub sur le site Web de GitHub.
Si cela ne fonctionne toujours pas, cela peut être dû au fait que ssh n'est pas configuré correctement et que ssh ne parvient pas à trouver l'emplacement de vos clés. Essayer
Pour obtenir plus d'informations sur les raisons de l'échec de SSH.
la source
Mise à jour directe de votre fichier de configuration Git ( si vous ne souhaitez pas mémoriser de fantastiques commandes ):
Ouvrez votre
.git/config
fichier dans votre éditeur de texte préféré. Ce sera dans le dossier que vous avez cloné ou dans le référentiel dans lequel vous avez jouégit init
. Allez dans ce référentiel..git
est un dossier caché, et en appuyant sur Ctrl+ Hdevrait afficher le dossier caché, (ls -a
dans le terminal).Voici un exemple du
.git/config
fichier. Copiez et collez ces lignes et assurez-vous de mettre à jour ces lignes avec vos informations Git.Modifiez la partie URL avec le format suivant pour SSH:
( Les formats ci-dessus ne changent pas avec divers serveurs distants Git comme GitHub ou Bitbucket. C'est la même chose si vous utilisez Git pour le contrôle de version ):
Remarque: La façon SSH de se connecter à un référentiel Git distant vous obligera à ajouter votre clé SSH publique à votre serveur distant Git ( comme GitHub ou Bitbucket. Recherchez la page des paramètres pour les clés SSH ).
Pour savoir comment générer vos clés SSH, reportez-vous à: Création de clés SSH
la source
C'est ce qui a fonctionné pour moi:
Exemple:
la source
Vous devez effectuer deux étapes -
git remote remove origin
git remote add origin [email protected]:NuggetAI/nugget.git
Notez que l'URL Git est une URL SSH et non une URL HTTPS ... que vous pouvez sélectionner ici:
la source
Si vous avez cloné HTTPS au lieu de SSH et que vous rencontrez un problème avec l'invite de nom d'utilisateur et de mot de passe lors de l'extraction, de la poussée et de la récupération. Vous pouvez résoudre ce problème simplement pour UBUNTU
Étape 1: déplacer vers le répertoire racine
créer un fichier .git-credentials
Ajoutez ce contenu à ce fichier avec vous
usename
password
etgithosting URL
Exécutez ensuite la commande
Maintenant, vous pourrez tirer et récupérer tous les détails de votre repo sans tracas.
la source
Si vous utilisez Git (par exemple, Git Bash) sous Windows (et si vous ne souhaitez pas passer de HTTPS à SSH), vous pouvez également utiliser Git Credential Manager pour Windows
Cette application gardera pour vous le nom d'utilisateur et le mot de passe ...
la source
Comme de nombreux utilisateurs l'ont dit, il vous suffit de changer l'URL de votre référentiel Git de HTTPS en SSH.
Si vous n'avez pas généré de clé SSH sur votre machine, vous devrez le faire.
Juste comme information supplémentaire, après avoir fait ce changement, j'obtenais toujours la même erreur:
Dans mon cas, le problème était que j'utilisais le shell Windows pour exécuter la commande ngh; puisque cette commande devrait ouvrir une invite pour demander la phrase SSH et que Windows Shell n'ouvre pas ce type d'invites, l'authentification a simplement échoué.
Donc, je devais juste ouvrir le shell Git et y exécuter la commande ngh, mettre la phrase SSH à l'invite à chaque fois qu'elle le demandait et "voilà" ... Ça fonctionnait bien!
la source
la source
Si vous avez activé 2FA sur votre compte Github, votre mot de passe normal ne fonctionnera pas à cette fin, mais vous pouvez générer un jeton d'accès personnel et l'utiliser à sa place.
Visitez la page
Settings
->Developer Settings
->Personal Access Tokens
dans GitHub ( https://github.com/settings/tokens/new ), et générez un nouveau Token avec toutes les autorisations Repo :La page affichera alors la nouvelle valeur de jeton. Enregistrez cette valeur et utilisez-la à la place de votre mot de passe lorsque vous accédez à votre référentiel sur GitHub:
la source