Comment obtenir git par défaut pour ssh et non https pour les nouveaux dépôts?

de nos jours, quand je crée un nouveau dépôt 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 le changer manuellement en

[email protected]:nikhilbhardwaj/abc.git

dans le .git/config . Je trouve cela assez irritant - y a-t-il un moyen de configurer Git pour utiliser SSH par défaut?

137
demandé sur corazza 2012-06-26 07:00:18
la source

5 ответов

configurer la branche d'origine D'un dépôt pour qu'elle soit SSH

la page de configuration du dépôt GitHub n'est qu'une liste de commandes suggérées (et GitHub suggère maintenant d'utiliser le protocole HTTPS). Sauf si vous avez un accès administratif au site de GitHub, Je ne sais pas comment changer les commandes suggérées.

si vous préférez utiliser le protocole SSH, ajoutez simplement une branche distante comme so (i.e. utilisez cette commande en place de GitHub suggéré de commande). Pour modifier une branche, voir la section suivante.

$ git remote add origin [email protected]:nikhilbhardwaj/abc.git

modifier un dépôt préexistant

comme vous le savez déjà, pour commuter un dépôt préexistant à utiliser SSH au lieu de HTTPS, vous pouvez changer l'url distante dans votre fichier .git/config .

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

un raccourci est d'utiliser la commande set-url :

$ git remote set-url origin [email protected]:nikhilbhardwaj/abc.git

plus d'information sur le switch ssh-HTTPS

230
répondu David Cain 2017-05-23 15:26:43
la source
  • GitHub

    git config --global url.ssh://[email protected]/.insteadOf https://github.com/
    
  • BitBucket

    git config --global url.ssh://[email protected]/.insteadOf https://bitbucket.org/
    

qui dit à git d'utiliser toujours SSH au lieu de HTTPS lors de la connexion à GitHub/BitBucket, donc vous vous authentifierez par certificat par défaut, au lieu d'être invité pour un mot de passe.

110
répondu Trevor Austin 2014-07-15 01:57:28
la source

la réponse fournie par Trevor est correcte .

Mais voici ce que vous pouvez ajouter directement dans votre .gitconfig :

# Enforce SSH
[url "ssh://[email protected]/"]
  insteadOf = https://github.com/
[url "ssh://[email protected]/"]
  insteadOf = https://gitlab.com/
[url "ssh://[email protected]/"]
  insteadOf = https://bitbucket.org/
37
répondu MoOx 2017-05-23 14:33:25
la source

si vous voulez plusieurs clés pour différents hôtes, faites ceci:

créer un script

#!/usr/bin/env bash
email=""
hostname=""
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 courir comme

sh script.sh [email protected] github.com

changez votre url distante

git remote set-url origin [email protected]:user/foo.git

ajouter contenu de~/.ssh / github.com_rsa.pub à tes clés ssh sur github.com

Vérifier la connexion

ssh -T [email protected]
2
répondu rofrol 2015-01-26 13:15:42
la source

assurez-vous que vous copiez le lien ssh en premier lieu lors du clonage, au lieu de https lien. C'est la façon de PEBCAK d'assurer cette valeur par défaut;)

1
répondu Mike Lyons 2015-01-27 00:42:55
la source

Autres questions sur