que - ¿Cómo puedo obtener git por defecto para ssh y no https para repositorios nuevos?
git push origin master (5)
Configurar la rama de origen de un repositorio para que sea SSH
La página de configuración del repositorio de GitHub es solo una lista sugerida de comandos (y GitHub ahora sugiere usar el protocolo HTTPS). A menos que tenga acceso administrativo al sitio de GitHub, no conozco ninguna forma de cambiar sus comandos sugeridos.
Si prefiere usar el protocolo SSH, simplemente agregue una rama remota como tal (es decir, use este comando en lugar del comando sugerido por GitHub). Para modificar una rama existente, mira la siguiente sección.
$ git remote add origin [email protected]:nikhilbhardwaj/abc.git
Modificar un repositorio preexistente
Como ya sabe, para cambiar un repositorio preexistente y utilizar SSH en lugar de HTTPS, puede cambiar la URL remota dentro de su archivo .git/config
.
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
-url = https://github.com/nikhilbhardwaj/abc.git
+url = [email protected]:nikhilbhardwaj/abc.git
Un atajo es usar el comando set-url
:
$ git remote set-url origin [email protected]: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 caché de credenciales para el uso de Git amigable para las muñecas - Publicación de blog de GitHub sobre HTTPS, y cómo evitar volver a ingresar su contraseña
En estos días cuando creo un nuevo repositorio en GitHub en la página de configuración 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
[email protected]:nikhilbhardwaj/abc.git
en .git/config
. Encuentro esto bastante irritante: ¿hay alguna forma de configurar Git para usar SSH por defecto?
Asegúrese de copiar el enlace ssh en primer lugar al clonar, en lugar del enlace https. Esa es la forma PEBCAK para garantizar este valor predeterminado;)
La respuesta proporcionada por Trevor es correcta .
Pero esto es lo que puede agregar directamente en su .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/
Si quiere muchas claves para diferentes hosts, haga esto:
Crea una secuencia de comandos
#!/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 [email protected] github.com
Cambia tu URL remota
git remote set-url origin [email protected]:user/foo.git
Agregue contenido de ~ / .ssh / github.com_rsa.pub a sus claves ssh en github.com
Verifica la conexión
ssh -T [email protected]
GitHub
git config --global url.ssh://[email protected]/.insteadOf https://github.com/
BitBucket
git config --global url.ssh://[email protected]/.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 certificado de manera predeterminada, en lugar de que se le pida una contraseña.