350 votes

Comment faire en sorte que git utilise ssh par défaut et non https pour les nouveaux référentiels

Ces jours-ci, lorsque je crée un nouveau référentiel sur GitHub sur la page de configuration, je reçois:

 git remote add origin https://github.com/nikhilbhardwaj/abc.git
git push -u origin master
 

Et chaque fois que je dois pousser un commit, je dois entrer mon nom d'utilisateur et mon mot de passe GitHub.

Je peux changer cela manuellement

 git@github.com:nikhilbhardwaj/abc.git
 

dans les .git/config . Je trouve cela assez irritant - puis-je configurer Git pour utiliser SSH par défaut?

453voto

David Cain Points 5164

Mettre en place un dépôt de l'origine de la branche à SSH

Le dépôt GitHub de la page de configuration est juste une liste de commandes (et GitHub suggère maintenant en utilisant le protocole HTTPS). Sauf si vous disposez d'un accès administratif GitHub du site, je ne sais pas de toute façon de changer leur a suggéré de commandes.

Si vous préférez utiliser le protocole SSH, il suffit d'ajouter une branche distante comme (c'est à dire utiliser cette commande au lieu de GitHub est suggéré de commande). Pour modifier une branche, voir la section suivante.

$ git remote add origin git@github.com:nikhilbhardwaj/abc.git

Modifier un pré-dépôt existant

Comme vous le savez déjà, pour passer un pré-dépôt existant pour utiliser SSH au lieu de HTTPS, vous pouvez modifier l'url distante au sein de votre .git/config le fichier.

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    -url = https://github.com/nikhilbhardwaj/abc.git
    +url = git@github.com:nikhilbhardwaj/abc.git

Un raccourci est d'utiliser l' set-url commande:

$ git remote set-url origin git@github.com:nikhilbhardwaj/abc.git

Plus d'informations sur l'utilisation de SSH-HTTPS commutateur

343voto

Trevor Austin Points 281
  • GitHub

     git config --global url.ssh://git@github.com/.insteadOf https://github.com/
     
  • BitBucket

     git config --global url.ssh://git@bitbucket.org/.insteadOf https://bitbucket.org/
     

Cela indique à git de toujours utiliser SSH au lieu de HTTPS lors de la connexion à GitHub / BitBucket, de sorte que vous vous authentifierez par certificat par défaut au lieu de vous demander un mot de passe.

11voto

rofrol Points 390

Si vous voulez plusieurs clés pour différents hôtes, procédez comme suit:

Créer un script

 #!/usr/bin/env bash
email="$1"
hostname="$2"
hostalias="$hostname"
keypath="$HOME/.ssh/${hostname}_rsa"
ssh-keygen -t rsa -C $email -f $keypath
if [ $? -eq 0 ]; then
cat >> ~/.ssh/config <<EOF
Host $hostalias
        Hostname $hostname
        User git
    IdentitiesOnly yes
        IdentityFile $keypath
EOF
fi
 

et l'exécuter comme

 sh script.sh myemail@example.com github.com
 

Changer votre URL distante

 git remote set-url origin git@$github.com:user/foo.git
 

Ajoutez le contenu de ~ / .ssh / github.com_rsa.pub à vos clés ssh sur github.com

Vérifier la connexion

 ssh -T git@github.com
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X