El user@host:path/to/repo
formato le dice a Git que use ssh para iniciar sesión host
con nombre de usuario user
. De git help clone
:
También se puede usar una sintaxis alternativa tipo scp con el protocolo ssh:
[user@]host.xz:path/to/repo.git/
La parte anterior al @
es el nombre de usuario, y el método de autenticación (contraseña, clave pública, etc.) se determina mediante ssh, no Git. Git no tiene forma de pasar una contraseña a ssh, porque es posible que ssh ni siquiera use una contraseña dependiendo de la configuración del servidor remoto.
Úselo ssh-agent
para evitar escribir contraseñas todo el tiempo
Si no desea escribir su contraseña ssh todo el tiempo, la solución típica es generar un par de claves pública / privada , colocar la clave pública en su ~/.ssh/authorized_keys
archivo en el servidor remoto y cargar su clave privada ssh-agent
. También vea Configuración de Git a través de SSH para iniciar sesión una vez , la página de ayuda de GitHub en frases de paso clave ssh , la documentación de ssh gitolite , y la documentación de las claves ssh Heroku .
Elegir entre varias cuentas en GitHub (o Heroku o ...)
Si tiene varias cuentas en un lugar como GitHub o Heroku, tendrá varias claves ssh (al menos una por cuenta). Para elegir en qué cuenta desea iniciar sesión, debe decirle a ssh qué clave privada usar .
Por ejemplo, suponga que tiene dos cuentas de GitHub: foo
y bar
. Su clave ssh para foo
es ~/.ssh/foo_github_id
y su clave ssh para bar
es ~/.ssh/bar_github_id
. Desea acceder git@github.com:foo/foo.git
con su foo
cuenta y git@github.com:bar/bar.git
con su bar
cuenta. Agregaría lo siguiente a su ~/.ssh/config
:
Host gh-foo
Hostname github.com
User git
IdentityFile ~/.ssh/foo_github_id
Host gh-bar
Hostname github.com
User git
IdentityFile ~/.ssh/bar_github_id
Luego clonarías los dos repositorios de la siguiente manera:
git clone gh-foo:foo/foo.git # logs in with account foo
git clone gh-bar:bar/bar.git # logs in with account bar
Evitar ssh por completo
Algunos servicios proporcionan acceso HTTP como alternativa a ssh:
GitHub:
https://username:password@github.com/username/repository.git
Gitorious:
https://username:password@gitorious.org/project/repository.git
Heroku: Vea este artículo de soporte .
ADVERTENCIA : Agregar su contraseña a la URL de clonación hará que Git almacene su contraseña de texto sin formato .git/config
. Para almacenar de forma segura su contraseña cuando usa HTTP, use un asistente de credenciales. Por ejemplo:
git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git
Lo anterior hará que Git solicite su contraseña una vez cada 15 minutos (de forma predeterminada). Ver git help credentials
para más detalles.