tutorial gui español descargar commands comandos git

gui - git repository



¿Cómo proporcionar el nombre de usuario y la contraseña cuando se ejecuta "git clone [email protected]"? (6)

El user@host:path/to/repo formato user@host:path/to/repo le dice a Git que use ssh para iniciar sesión con el usuario con nombre de user . De git help clone :

También se puede usar una sintaxis similar a scp con el protocolo ssh:

[user@]host.xz:path/to/repo.git/

La parte anterior a @ es el nombre de usuario, y ssh, no Git, determina el método de autenticación (contraseña, clave pública, etc.). Git no tiene forma de pasar una contraseña a ssh, ya que ssh ni siquiera puede usar una contraseña dependiendo de la configuración del servidor remoto.

Use 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 , poner la clave pública en su archivo ~/.ssh/authorized_keys en el servidor remoto y cargar su clave privada. clave en ssh-agent . También vea Configuración de Git sobre SSH para iniciar sesión una vez , la página de ayuda de GitHub en las frases de contraseña de ssh key , la documentación de ssh de gitolite y la documentación de ssh keys de 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 la cuenta en la que desea iniciar sesión, debe indicar a ssh qué clave privada usar .

Por ejemplo, supongamos que tienes 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 a [email protected]:foo/foo.git con su cuenta de foo y [email protected]:bar/bar.git con su cuenta de bar . Usted 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

Evitando ssh por completo

Algunos servicios proporcionan acceso HTTP como alternativa a ssh:

ADVERTENCIA : Agregar su contraseña a la URL de clonación hará que Git almacene su contraseña de texto .git/config en .git/config . Para almacenar de forma segura su contraseña al usar 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.

Sé cómo proporcionar un nombre de usuario y contraseña para una solicitud https como esta:

git clone https://username:password@remote

Pero me gustaría saber cómo proporcionar un nombre de usuario y contraseña para el control remoto de esta manera:

git clone [email protected]

He intentado así:

git clone username:password@[email protected] git clone git@username:[email protected] git clone [email protected]@username:password

Pero no han funcionado.


En los comentarios de @ Bassetassen, @plosco mencionó que puede usar git clone https://<token>@github.com/username/repository.git para clonar desde GitHub como mínimo. Pensé que me expandiría sobre cómo hacerlo, en caso de que alguien encuentre esta respuesta como lo hice al intentar automatizar algo de clonación.

GitHub tiene una guía muy útil sobre cómo hacer esto, pero no cubre qué hacer si desea incluirlo todo en una sola línea con fines de automatización. Advierte que agregar el token a la URL de clonación lo almacenará en texto sin formato en .git/config . Esto obviamente es un riesgo de seguridad para casi todos los casos de uso, pero como planeo eliminar el repositorio y revocar el token cuando termine, no me importa.

1. Crea un Token

GitHub tiene toda una guía aquí sobre cómo obtener un token, pero aquí está el TL; DR.

  1. Vaya a Configuración> Configuración de desarrollador> Tokens de acceso personal ( aquí hay un enlace directo )
  2. Haga clic en "Generar un nuevo token" e ingrese su contraseña nuevamente. (aquí hay otro enlace directo )
  3. Establece una descripción / nombre para ello, verifica el permiso de "repo" y presiona el botón "Generar token" en la parte inferior de la página.
  4. Copia tu nuevo token antes de salir de la página.

2. Clona el Repo

Igual que el comando que dio @plosco, git clone https://<token>@github.com/<username>/<repository>.git , simplemente reemplace <token> , <username> y <repository> con cualquiera que sea su información .

Si desea clonarlo en una carpeta específica, simplemente inserte la dirección de la carpeta al final de la siguiente manera: git clone https://<token>@github.com/<username>/<repository.git> <folder> , donde <folder> es, lo has adivinado, la carpeta para clonarla! Por supuesto que puedes usar . , .. , ~ , etc. aquí como puedes en otro lado.

3. No dejar rastro

No todo esto puede ser necesario, dependiendo de lo sensible que sea lo que esté haciendo.

  • Probablemente no querrá dejar ese token colgado si no tiene intenciones de usarlo durante algún tiempo, así que regrese a la página de tokens y presione el botón de eliminar que se encuentra al lado.
  • Si no necesita el repositorio de nuevo, elimínelo rm -rf <folder> .
  • Si necesita el repositorio nuevamente, pero no necesita automatizarlo nuevamente, puede eliminar el control remoto haciendo git remote remove origin o simplemente eliminar el token ejecutando git remote set-url origin https://github.com/<username>/<repository.git> .
  • Borre su historial de bash para asegurarse de que el token no permanezca registrado allí. Hay muchas maneras de hacer esto, vea esta pregunta y esta pregunta . Sin embargo, puede ser más fácil simplemente anteponer todos los comandos anteriores con un espacio para evitar que se almacenen, para empezar.

Tenga en cuenta que no soy un profesional, por lo que lo anterior puede no ser seguro en el sentido de que no se dejará rastro para ningún tipo de trabajo forense.


Resolví este problema de la siguiente manera:


En Windows , los siguientes pasos deberían volver a activar la ventana de inicio de sesión de GitHub cuando se git clone :

  • Menú de inicio de búsqueda para "Administrador de credenciales"
  • Seleccione "Credenciales de Windows"
  • Elimina las credenciales relacionadas con Git o GitHub


git clone https://username:[email protected]/username/repository.git

Así me funcionó desde un repositorio de github.

Edición basada en el comentario de Michael_Scharf:

Puede omitir la contraseña para que no se registre su archivo de historial de bash:

git clone https://[email protected]/username/repository.git

Le pedirá su contraseña


git config --global core.askpass

Ejecute esto primero antes de clonar de la misma manera, debe ser arreglado!