¿Cómo puedo get git por defecto para ssh y no https para repositorys nuevos?

En estos días cuando creo un nuevo repository en GitHub en la página de configuration obtengo:

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

Y cada vez que tengo que enviar una confirmación, debo ingresar mi nombre de usuario y contraseña de GitHub.

Puedo cambiarlo manualmente a

 git@github.com:nikhilbhardwaj/abc.git 

en .git/config . Encuentro esto bastante irritante: ¿hay alguna forma de configurar Git para usar SSH por defecto?

Configurar la twig de origen de un repository para que sea SSH

La página de configuration del repository de GitHub es solo una list sugerida de commands (y GitHub ahora sugiere usar el protocolo HTTPS). A less que tenga acceso administrativo al sitio de GitHub, no conozco ninguna forma de cambiar sus commands sugeridos.

Si prefiere usar el protocolo SSH, simplemente agregue una twig remota como tal (es decir, use este command en lugar del command sugerido por GitHub). Para modificar una twig existente, mira la siguiente sección.

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

Modificar un repository preexistente

Como ya sabe, para cambiar un repository preexistente y utilizar SSH en lugar de HTTPS, puede cambiar la URL remota dentro de su file .git/config .

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

Un atajo es usar el command set-url :

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

Más información sobre el conmutador SSH-HTTPS

  • "¿Por qué siempre Git está pidiendo mi contraseña?" – Página de ayuda de GitHub.
  • Cambio de GitHub a Smart HTTP – pregunta relevante de StackOverflow
  • Almacenamiento en caching de cnetworkingenciales para el uso de Git fácil de usar para la muñeca : publicación en el blog de GitHub sobre HTTPS y cómo evitar volver a ingresar su contraseña
  • 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/ 

Eso le dice a git que siempre use SSH en lugar de HTTPS cuando se conecta a GitHub / BitBucket, por lo que se autenticará por certificate de manera pnetworkingeterminada, en lugar de que se le pida una contraseña.

La respuesta proporcionada por Trevor es correcta .

Pero esto es lo que puede agregar directamente en su .gitconfig :

 # Enforce SSH [url "ssh://git@github.com/"] insteadOf = https://github.com/ [url "ssh://git@gitlab.com/"] insteadOf = https://gitlab.com/ [url "ssh://git@bitbucket.org/"] insteadOf = https://bitbucket.org/ 

Si quiere muchas keys para diferentes hosts, haga esto:

Crea una secuencia de commands

 #!/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 

y ejecutarlo como

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

Cambia tu URL remota

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

Agregue contenido de ~ / .ssh / github.com_rsa.pub a sus keys ssh en github.com

Verifica la connection

 ssh -T git@github.com 

Asegúrese de copyr el enlace ssh en primer lugar al clonar, en lugar del enlace https. Esa es la forma PEBCAK para garantizar este valor pnetworkingeterminado;)