usuario tipos tag pide password guardar etiquetas credenciales crear contraseña cambiar borrar and git github git-push

tipos - guardar usuario y contraseña github



¿Cómo evito la especificación del nombre de usuario y la contraseña en cada impulso de git? (18)

1. Generar una clave SSH

Linux / Mac

Abrir terminal para crear claves ssh:

cd ~ #Your home directory ssh-keygen -t rsa #Press enter for all values

Para ventanas

(Solo funciona si el programa de confirmación es capaz de usar certificados / claves ssh privadas y públicas)

  1. Utiliza Putty Gen para generar una llave.
  2. Exportar la clave como una clave SSH abierta

Aquí hay un walkthrough sobre putty gen para los pasos anteriores

2. Asocie la clave SSH con el repositorio remoto

Este paso varía según la configuración del control remoto.

  • Si es un repositorio de GitHub y usted tiene privilegios administrativos, vaya a la settings y haga clic en ''agregar clave SSH''. Copie el contenido de su ~/.ssh/id_rsa.pub en el campo etiquetado ''Clave''.

  • Si su repositorio es administrado por otra persona, entregue al administrador su id_rsa.pub .

  • Si su repositorio remoto es administrado por usted, puede usar este comando, por ejemplo:

    scp ~/.ssh/id_rsa.pub YOUR_USER@YOUR_IP:~/.ssh/authorized_keys/id_rsa.pub

3. Establezca su URL remota en un formulario que admita SSH 1

Si ha realizado los pasos anteriores y aún recibe la solicitud de contraseña, asegúrese de que la URL de su repositorio esté en el formulario

git+ssh://[email protected]/username/reponame.git

Opuesto a

https://github.com/username/reponame.git

Para ver la URL de tu repositorio, ejecuta:

git remote show origin

Puedes cambiar la URL con:

git remote set-url origin git+ssh://[email protected]/username/reponame.git

[1] Esta sección incorpora la respuesta de Eric P

Yo git push mi trabajo a un repositorio remoto de Git.

Cada push me pedirá que ingrese un username y password Me gustaría evitarlo con cada pulsación, pero ¿cómo configurarlo para evitarlo?


Ahorro indefinidamente

Puedes usar el git-credential-store través de

git config credential.helper store

que git-credential-store :

El uso de este asistente almacenará sus contraseñas sin cifrar en el disco, protegidas solo por los permisos del sistema de archivos. Si este no es un compromiso de seguridad aceptable, intente git-credential-cache, o busque un ayudante que se integre con el almacenamiento seguro proporcionado por su sistema operativo.

Con un timeout

Utilice git-credential-cache que, de forma predeterminada, almacena la contraseña durante 15 minutos.

git config credential.helper cache

para establecer un tiempo de espera diferente, use --timeout tiempo de espera (aquí 5 minutos)

git config credential.helper ''cache --timeout=300''

Ahorro seguro indefinidamente (OS X y Windows)

  • Si está utilizando una Mac, Git viene con un modo "osxkeychain" , que almacena las credenciales en el llavero seguro que está conectado a su cuenta del sistema. Este método almacena las credenciales en el disco y nunca caducan, pero están cifradas con el mismo sistema que almacena los certificados HTTPS y los rellenos automáticos de Safari.
  • Si está usando Windows, puede instalar un ayudante llamado "Git Credential Manager for Windows". Esto es similar al ayudante "osxkeychain" descrito anteriormente, pero utiliza el almacén de credenciales de Windows para controlar la información confidencial. Se puede encontrar en https://github.com/Microsoft/Git-Credential-Manager-for-Windows . [énfasis mío]

Autenticación permanente con repositorios Git,

Ejecute el siguiente comando para habilitar el almacenamiento en caché de credenciales.

$ git config credential.helper store $ git push https://github.com/repo.git Username for ''https://github.com'': <USERNAME> Password for ''https://[email protected]'': <PASSWORD>

El uso también debe especificar caducidad de almacenamiento en caché ,

git config --global credential.helper ''cache --timeout 7200''

Después de habilitar el almacenamiento en caché de credenciales, se almacenará en caché durante 7200 segundos (2 horas) .

Nota: Asistente de credenciales que almacena la contraseña no cifrada en el disco local.



Creé un repositorio vacío en github y luego ...

git push -u origin master

Debe configurar la URL ssh remota como se describe anteriormente.


Debe configurar una clave privada SSH, puede revisar esta page , cómo hacer la configuración en Mac, si está en Linux, la guía debería ser casi la misma, en Windows necesitará una herramienta como MSYS .


Ejecutar el siguiente comando solucionó el problema para mí.

git config --global credential.helper wincred

Por favor, consulte la siguiente documentación github:

https://help.github.com/articles/caching-your-github-password-in-git/


En el sistema operativo Windows use esto en su lugar, esto funciona para mí:

https://{Username}:{Password}@github.com/{Username}/{repo}.git

p.ej

git clone https://{Username}:{Password}@github.com/{Username}/{repo}.git git pull https://{Username}:{Password}@github.com/{Username}/{repo}.git git remote add origin https://{Username}:{Password}@github.com/{Username}/{repo}.git git push origin master


Estaba usando el enlace https ( https://github.com/org/repo.git ) en lugar del enlace ssh;

[email protected]:org/repo.git

¡El cambio resolvió el problema para mí!


Mi solución en Windows:

  1. Haga clic derecho en el directorio para empujar y seleccione "Git Bash Here".
  2. ssh-keygen -t rsa (Presione enter para todos los valores)
  3. Compruebe el terminal para: Your public key has been saved in /c/Users/<your_user_name_here>/.ssh/id_rsa.pub
  4. Copie la clave pública del archivo especificado.
  5. Vaya a su perfil de GitHub => Configuración => SSH y GPG claves => Nueva clave SSH => Pegue su clave SSH = = Guardar

Parece que, al menos cuando se usa TortoiseGIT en Windows, es posible crear las claves SSH y transferirlas al servidor GIT usando simplemente:

> ssh-keygen.exe > ssh-copy-id [username]@[GIT_server]


Paso 1 -

Cree claves SSH en su sistema Linux usando el siguiente comando

ssh-keygen -t rsa -b 4096 -C "your_email"

Le pedirá la frase de contraseña y el nombre del archivo (el valor predeterminado será ~ / .ssh / id_rsa, ~ / .ssh / id_rsa.pub)

Paso 2 -

Una vez que se crean los archivos, agregue la clave pública id_rsa.pub a la sección ssh de github.

Paso 3 -

En su máquina, agregue la clave privada id_rsa a ssh-agent usando el siguiente comando

ssh-add ~/.ssh/id_rsa

Etapa 4 -

Ahora agregue la url remota [email protected]: user_name / repo_name.git a su repositorio local de git usando el comando a continuación.

git remote remove origin git remote add origin [email protected]:user_name/repo_name.git

Eso es.


Si su PC es segura o no le importa la seguridad de la contraseña, esto puede lograrse de manera muy simple. Suponiendo que el repositorio remoto está en GitHub y el origin es su nombre local para el repositorio remoto, use este comando

git remote set-url --push origin https://<username>:<password>@github.com/<repo>

El indicador --push garantiza que esto cambie la URL del repositorio solo para el comando git push . (La pregunta formulada en la publicación original es acerca git push comando git push solamente. Requerir un nombre de usuario + contraseña solo para operaciones push es la configuración normal de los repositorios públicos en GitHub. Tenga en cuenta que los repositorios privados en GitHub también requerirán un nombre de usuario + contraseña para tirar y operaciones de búsqueda, por lo que para un repositorio privado no querría usar el --push flag ...)

ADVERTENCIA: Esto es inherentemente inseguro porque:

  1. su ISP, o cualquier persona que registre sus accesos de red, puede ver fácilmente la contraseña en texto sin formato en la URL;

  2. cualquier persona que obtenga acceso a su PC puede ver su contraseña usando git remote show origin .

Es por eso que usar una clave SSH es la respuesta aceptada.

Incluso una clave SSH no es totalmente segura . Cualquier persona que obtenga acceso a su PC puede, por ejemplo, hacer pulsos que arruinen su repositorio o, peor aún, empujar compromisos haciendo cambios sutiles en su código. (Todas las confirmaciones empujadas son, obviamente, altamente visibles en GitHub. Pero si alguien quisiera cambiar su código a --amend , podrían: --amend una confirmación previa sin cambiar el mensaje de confirmación, y luego forzar la inserción). Eso sería sigiloso y difícil de notar. en la práctica.)

Pero revelar tu contraseña es peor . Si un atacante obtiene conocimiento de su nombre de usuario + contraseña, puede hacer cosas como bloquearlo de su propia cuenta, eliminar su cuenta, eliminar permanentemente el repositorio, etc.

Alternativamente, para mayor simplicidad y seguridad, puede ingresar solo su nombre de usuario en la URL, de modo que tendrá que escribir su contraseña cada vez que git push pero no tendrá que dar su nombre de usuario cada vez. (Me gusta mucho este enfoque, tener que escribir la contraseña me da una pausa para pensar cada vez que hago git push , por lo que no puedo hacerlo por accidente).

git remote set-url --push origin https://<username>@github.com/<repo>


Si ya tiene configuradas sus claves SSH y sigue recibiendo el aviso de contraseña, asegúrese de que la URL de su repositorio esté en el formulario

git+ssh://[email protected]/username/reponame.git

Opuesto a

https://github.com/username/reponame.git

Para ver la URL de tu repositorio, ejecuta:

git remote show origin

Puedes cambiar la URL con git remote set-url así:

git remote set-url origin git+ssh://[email protected]/username/reponame.git


Solo quería señalar algo sobre la solución que se dijo anteriormente varias veces:

git config credential.helper store

Puedes usar cualquier comando que requiera una contraseña después de esto. No tienes que empujar. (También puede extraer, por ejemplo) Después de eso, no tendrá que volver a escribir su nombre de usuario / contraseña.


Solo usa la opción --repo para el comando git push. Me gusta esto:

$ git push --repo https://name:[email protected]/name/repo.git


Todo esto surge porque git no proporciona una opción en los comandos de clonar / jalar / empujar / fetch para enviar las credenciales a través de una canalización. Aunque proporciona credential.helper, se almacena en el sistema de archivos o crea un demonio, etc. A menudo, las credenciales de GIT son de nivel de sistema y la responsabilidad de mantenerlos seguros es la aplicación que invoca los comandos de git. Muy inseguro de hecho.

Esto es lo que tuve que trabajar alrededor 1. La versión de Git (git --version) debe ser mayor o igual a 1.8.3.

GIT CLONE

Para la clonación, use "git clone URL" después de cambiar la URL del formato, http: // {myuser} @ {my_repo_ip_address} / {myrepo_name.git} a http: // {myuser}: {mypwd} @ {my_repo_ip_address} /{myrepo_name.git}

Luego borre el repositorio de la contraseña como se muestra en la siguiente sección.

Comprando

Ahora, esto habría ido y

  1. Escrito la contraseña en origen remoto git. Escribe "git remote -v" para ver el daño. Corrija esto configurando la URL de origen remoto sin contraseña. "git remote set_url origin http: // {myuser} @ {my_repo_ip_address} / {myrepo_name.git}"
  2. Escriba la contraseña en .git / logs en el repositorio. Reemplace todas las instancias de pwd usando un comando de Unix como buscar .git / logs -exec sed -i ''s / {my_url_with_pwd} // g'' {} /; Aquí, {my_url_with_pwd} es la URL con contraseña. Dado que la URL tiene barras diagonales hacia delante, debe ser evitada por dos barras diagonales hacia atrás. Por ejemplo, para la URL http://kris:[email protected]/proj.git -> http: // / // / kris: [email protected] // / proj.git

Si su aplicación utiliza Java para emitir estos comandos, use ProcessBuilder en lugar de Runtime. Si debe usar Runtime, use getRunTime (). Exec que toma la matriz de cadenas como argumentos con / bin / bash y -c como argumentos en lugar de uno que toma una sola cadena como argumento.

GIT FETCH / PULL / PUSH

  1. establezca la contraseña en la url remota de git como: "git remote set_url origin http: // {myuser}: {mypwd} @ {my_repo_ip_address} / {myrepo_name.git}"
  2. Ejecute el comando git fetch / push / pull. A continuación, no se le pedirá la contraseña.
  3. Haga la purga como en la sección anterior. No te lo pierdas.

Utilicé la respuesta que Pavel sugirió y funcionó para mí. Mi diferencia era hacerlo mientras estaba agregando el control remoto de manera similar: git remote add (alias) https://(name:password)@github.com/(the remote address).git