mac keygen generate create windows git ssh cmd

generate - ssh-keygen windows



Por quƩ git no puede recordar mi frase de contraseƱa en Windows (11)

Acabo de empezar a usar git y no puedo recordar mi frase de contraseña. Estoy usando cmd.exe elevado y mi git host es github y tengo que crear una clave ssh como esa guía en Github.

pero sigo teniendo

*/subnus.mvc>git push origin master Enter passphrase for key ''/c/Users/Subnus/.ssh/id_rsa'':


En caso de que esté utilizando Git bash en Windows , puede realizar lo siguiente:

eval `ssh-agent -s` ssh-add ~/.ssh/*_rsa

pedirá una frase de contraseña en el segundo comando, y eso es todo. Cada acción adicional que necesite hacer (que una vez requirió una frase de contraseña) no le pedirá la frase de contraseña (vea un ejemplo en la captura de pantalla a continuación):

Espero eso ayude.

Aclamaciones,

Chico.


Eso no es git, es ssh.

No hago ventanas, pero ssh tiene un concepto de agente que puede recordar las frases de contraseña. OS X tiene esto habilitado por defecto. Su cliente ssh probablemente tenga una forma de configurar esto.


Hay una solución mucho más simple para este problema si no te importa tener tu contraseña almacenada en texto plano y estás usando TortoiseGit.

Simplemente cree un archivo _netrc en su directorio de perfil de usuario, es decir, en Windows 7 sería C:/Users/MyName/_netrc . Este archivo almacenará su información de inicio de sesión en este formato:

machine bitbucket.org login thisismyname password p455w0rD machine bitbucket.org login another_account password pwdpwdPWd machine github.com login thisismynameagain password p455w0rD

Estoy usando TortoisePLink como un cliente SSH y funciona sin problemas.


Me doy cuenta de que esta pregunta se acerca a los dos años, pero tuve el mismo problema y varias respuestas aquí no respondieron completamente la pregunta por mí. Aquí hay dos soluciones paso a paso, dependiendo de si usa TortoiseGit además de msysgit o no.

Primera solución Asume Windows, msysgit y PuTTY.

  1. Instale msysgit y PuTTY como se indica.
  2. (Opcional) Agregue PuTTY a su ruta. (Si no hace esto, cualquier referencia a los comandos PuTTY a continuación debe estar precedida de la ruta completa al ejecutable apropiado).
  3. Si aún no lo ha hecho, genere un hash de claves como se indica en GitHub o según lo indique su anfitrión de Git.
  4. Nuevamente, si aún no lo ha hecho, convierta su clave para utilizarla con pageant.exe de PuTTY usando puttygen.exe . Las instrucciones están en la documentación de PuTTY, en esta útil guía y en otros muchos lugares del ciberespacio.
  5. Ejecute el pageant.exe de PuTTY, abra su archivo .ppk ("Agregar clave") y proporcione su contraseña para su clave.
  6. Acceda al cuadro de diálogo de variables de entorno de Windows (haga clic con el botón derecho en "Equipo", haga clic en "Propiedades", haga clic en "Configuración avanzada del sistema" o en la pestaña "Avanzado", haga clic en "Variables de entorno"). Agregue la siguiente variable de entorno:

    GIT_SSH = C: / full / path / to / plink.exe

    Reemplace "C: / full / path / to" con la ruta de instalación completa a PuTTY, donde se encuentra plink.exe. Probablemente sea mejor agregarlo a la sección "Variables de usuario". Además, asegúrese de que la ruta que utiliza para plink.exe coincide con la ruta que utiliza para el Pageant (pageant.exe). En algunos casos, puede tener varias instalaciones de PuTTY porque podrían instalarse junto con otras aplicaciones. Usar plink.exe desde una instalación y pageant.exe desde otra probablemente le cause problemas.

  7. Abra un símbolo del sistema.

  8. Si está intentando conectarse a un repositorio git alojado en Github.com, ejecute el siguiente comando:

    plink.exe [email protected]

    Si el repositorio git al que está intentando conectarse está alojado en otro sitio, reemplace [email protected] con un nombre de usuario y una URL apropiados. (Suponiendo que Github) Se le debe informar que la clave de host del servidor no está en la memoria caché, y le pregunta si confía en ella. Responda con a y . Esto agregará la clave de host del servidor a la lista de hosts conocidos de PuTTY. Sin este paso, los comandos de git no funcionarán correctamente. Después de presionar Enter, Github le informa que Github no proporciona acceso de shell. Está bien ... no lo necesitamos. (Si se está conectando a otro host y le da acceso al shell, probablemente sea mejor finalizar el enlace sin hacer nada más).

  9. ¡Todo listo! Los comandos de Git ahora deberían funcionar desde la línea de comando. Es posible que desee tener pageant.exe cargar su archivo .ppk automáticamente en el momento del arranque , dependiendo de la frecuencia con la que lo necesite.

Segunda solución Asume Windows, msysgit y TortoiseGit.

TortoiseGit viene con ejecutables PuTTY y una versión especialmente modificada de plink (llamada TortoisePlink.exe) que facilitará las cosas.

  1. Instale msysgit y TortoiseGit como se indica.
  2. Si aún no lo ha hecho, genere un hash de claves como se indica en GitHub o según lo indique su anfitrión de Git.
  3. De nuevo, si aún no lo ha hecho, convierta su clave para utilizarla con pageant.exe de TortoiseGit utilizando puttygen.exe de TortoiseGit. Las instrucciones se encuentran en la documentación de PuTTY, en la útil guía vinculada a la primera solución y en muchos otros lugares del ciberespacio.
  4. Ejecute pageant.exe de TortoiseGit , abra su archivo .ppk ("Agregar clave") y proporcione su contraseña para su clave.
  5. Acceda al cuadro de diálogo de variables de entorno de Windows (haga clic con el botón derecho en "Equipo", haga clic en "Propiedades", haga clic en "Configuración avanzada del sistema" o en la pestaña "Avanzado", haga clic en "Variables de entorno"). Agregue la siguiente variable de entorno:

    GIT_SSH = C: / full / path / to / TortoisePlink.exe

    Reemplace "C: / full / path / to" con la ruta de instalación completa a TortoiseGit, donde se encuentra TortoisePlink.exe. Probablemente sea mejor agregarlo a la sección "Variables de usuario". Además, asegúrese de que la ruta que utiliza para TortoisePlink.exe coincide con la ruta que utiliza para el Pageant (pageant.exe). En algunos casos, puede tener varias instalaciones de PuTTY porque podrían instalarse junto con otras aplicaciones. Usar TortoisePlink.exe desde la instalación de TortoiseGit y pageant.exe desde otra instalación de una aplicación diferente (o desde una instalación independiente de PuTTY) probablemente le cause problemas.

  6. ¡Todo listo! Los comandos de Git ahora deberían funcionar desde la línea de comando. La primera vez que intente conectarse a su repositorio de git, probablemente se le informará que la clave de host del servidor no está en la memoria caché, y le pregunta si confía en el servidor. Haga clic en "Sí". (Esto es TortoisePlink.exe en acción).

    Es posible que desee que pageant.exe cargue su archivo .ppk automáticamente en el momento del inicio , según la frecuencia con la que lo necesite.

Tercera solución Asume Ventana, msysgit y símbolo del sistema nativo.

  1. Instalar msysgit
  2. Asegúrese de permitir que git se use en el símbolo del sistema de MS-DOS
  3. Ejecute start-ssh-agent
  4. Ingrese las frases de contraseña SSH
  5. ¡Todo listo! Los comandos de Git ahora deberían funcionar en el símbolo del sistema nativo.

Me doy cuenta de que esto se ha retrasado varios años, pero me encontré con esta pregunta tratando de encontrar una solución para ello, y encontré algo que se adapta a todos los niveles de experiencia, así que pensé que lo compartiría.

GitHub proporciona un instalador muy útil que hace todo agradable y fácil: https://help.github.com/articles/caching-your-github-password-in-git/



Puede crear un archivo .bashrc en el directorio de inicio del usuario como C: / Users / youruser , y colocar allí:

env=~/.ssh/agent.env agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; } agent_start () { (umask 077; ssh-agent >| "$env") . "$env" >| /dev/null ; } agent_load_env # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?) if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then agent_start ssh-add elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then ssh-add fi unset env

Es un script, se ejecuta cada vez que bash se ejecuta. ¡Así que tendrás que ingresar la contraseña solo una vez, cuando se inicie git-bash!

Algunas versiones de bash requieren el archivo .bash_profile lugar .bashrc por lo que solo en caso de clonar .bashrc:

copy .bashrc .bash_profile


Si configura una contraseña para su archivo de clave, siempre tendrá que ingresar esa contraseña cuando se conecte. Si crea una clave sin contraseña, no tendrá que escribirla cada vez; sin embargo, cualquiera que tenga acceso a su archivo de clave ahora puede conectarse a su cuenta github.

ssh-agent también puede funcionar. Intente ejecutar eso y vea si recordará su frase de contraseña.


Una solución adicional 5 años, 8 meses y 6 días después de la publicación de la pregunta no sería una mala idea, así que aquí va.

NOTA: Asume que está usando una computadora con Windows.

  1. Descargue git-credential-winstore .
  2. ¡Ejecutarlo! Si tiene GIT en su PATH entorno PATH , debería funcionar. Si no lo hace, ejecute git-credential-winstore -i C:/Path/To/Git.exe .

La próxima vez que intente comprometerse con un repositorio, se le pedirá que ingrese sus credenciales. Eso debería ser. No se le pedirán sus credenciales por más tiempo hasta que cambie su contraseña.

Solo para su conocimiento ... Sus credenciales se almacenan en la Tienda de credenciales de Windows

¿Dónde estás almacenando mis credenciales?

Esta aplicación solo usa la tienda de credenciales de Windows existente para guardar tus credenciales. Puede ver las credenciales almacenadas yendo a Panel de control> Cuentas de usuario> Administrador de credenciales y seleccionando "Credenciales de Windows". Las entradas que comienzan con "git:" son de git-credential-winstore.


[edit - leyó mal la pregunta, esta es una respuesta a un problema relacionado. dejando la versión reformulada para la posteridad]

Mi caso fue que estaba tratando de presionar a un repositorio alojado en uno de nuestros servidores. Cada vez que intentaba hacer un push, git me pedía mi contraseña (nb - contraseña, no la contraseña en mi clave privada).

Al agregar mi clave pública a las claves autorizadas en el servidor, pude obtener impulsos sin contraseña para ese servidor. Y, como no había frase de contraseña en mi clave privada (¡lo cual es una mala práctica, por cierto!) No tuve que escribir nada en absoluto.

Aquí está el comando para agregar su clave pública a un servidor. Asume que el usuario git es el usuario en el servidor.

cat .ssh/id_rsa.pub | ssh git@GIT_MASTER_IP ''cat >> .ssh/authorized_keys''

Puede lograr lo mismo iniciando sesión en el servidor y agregando manualmente su clave pública al archivo en ~/.ssh/authorized_keys


puede intentar agregar -k arg cuando lo haga;

ssh-add -k ~/.ssh/id_rsa