Clave SSH: sigo solicitando contraseña y frase de contraseña

496

He estado 'aguantando' algo con Github siempre preguntando por mi nombre de usuario y contraseña cuando clono un repositorio. Quiero omitir este paso porque es una molestia dentro de mi flujo de trabajo.

Intenté configurar una clave SSH (que hice con éxito) usando esta guía. https://help.github.com/articles/generating-ssh-keys y tuve éxito.

Mi problema es que todavía me piden mi contraseña y frase de contraseña de github al clonar un repositorio (usando SSH). Comprendí que después de configurar esta clave SSH, ya no tendría que hacer eso.

Estoy un poco inseguro de qué preguntar, así que simplemente declararé mi objetivo.

Quiero poder clonar repositorios sin tener que poner mi información de Github todo el tiempo .

¿Qué me falta con mi clave SSH? Si alguien puede proporcionar alguna orientación o recursos, lo agradecería, porque siempre me he sentido un poco perdido en lo que respecta a la autenticación SSH en GitHub.

Que yo sepa, este es un comando que prueba si las cosas funcionan correctamente, aquí están los resultados de mi consola:

~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Cuando ingreso mi contraseña, ¿debería fallar eso primero? Luego, cuando ingreso mi frase de contraseña, pasa.

Hola Mundo
fuente
1
¿En qué sistema operativo estás? Un escritorio de Linux moderno propondría almacenar su frase de contraseña en un administrador de claves. Lo mismo en Mac OS X. En Windows puedes usar pageant, que es parte de putty. En todos estos, el objetivo es el mismo: ingresa la frase de contraseña solo una vez después de iniciar su PC, los agentes del administrador de claves la pasarán a ssh en usos posteriores hasta que reinicie.
janos
2
Llego un poco tarde a la fiesta aquí, pero en la pequeña pestaña / botón de clonar en github hay un enlace que dice "Usar SSH". Tu quieres hacer eso. Cambia su enlace de clonación a algo como "git @ github: username / project.git". Si agregó una clave SSH a github y la ejecuta localmente en ssh-agent, entonces debería poder presionar sin ingresar un nombre de usuario o contraseña.
Logan Kitchen

Respuestas:

201

Si trabaja con HTTPsURL, siempre le pedirá su nombre de usuario / contraseña.

Si está utilizando correctamente SSHal clonar / configurar controles remotos. Luego, asegúrese de tener un agente ssh para recordar su contraseña. De esa manera, solo ingresará su frase de contraseña una vez por sesión terminal.

Si todavía es demasiado molesto, simplemente configure una clave ssh sin frase de contraseña.

Simon Boudrias
fuente
2
Gracias por la respuesta. Siempre he usado HTTPs. Estoy tratando de lograr la autenticación SSH y pensé que la configuré. ¿Es ssh-agent algo fuera de git que necesito instalar? Gracias
HelloWorld
1
@ R11G no puede, de lo contrario las contraseñas no serían seguras ... Simplemente regenere una nueva.
Simon Boudrias
50
Solo quiero señalar que las frases de contraseña se utilizan para cifrar su clave privada, por lo que si no usa una frase de contraseña, su clave privada no se cifrará en su máquina. Es como dejar una contraseña en un archivo de texto en su computadora.
2
Es curioso, mis repositorios HTTPS nunca piden contraseñas y mis repositorios SSH siempre lo hacen.
Adam
33
Vea este documento de github para convertir la URL del control remoto de https a ssh. Para verificar si la URL del control remoto es ssh o https, use git remote -v. Para cambiar de https a ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Manavalan Gajapathy
826

Agregar identidad sin llavero

Puede haber ocasiones en las que no desee que la frase de contraseña se almacene en el llavero, pero no desee tener que ingresarla una y otra vez.

Puedes hacer eso así:

ssh-add ~/.ssh/id_rsa 

Esto le pedirá la frase de contraseña, ingrésela y no volverá a preguntar hasta que reinicie.

Agregar identidad usando llavero

Como @dennis señala en los comentarios, para persistir la frase de contraseña a través de reinicios almacenándola en su llavero, puede usar la -Kopción ( -kpara Ubuntu) al agregar la identidad de esta manera:

ssh-add -K ~/.ssh/id_rsa

Una vez más, esto le pedirá la frase de contraseña, ingrésela y esta vez nunca más le pedirá esta identidad.

Komu
fuente
178
Tenga en cuenta que esto no persistirá la identidad en los reinicios. Puede usar la -Kopción para almacenar la frase de contraseña en su llavero al agregarla, por ejemplossh-add -K ~/.ssh/id_rsa
Dennis
29
minúscula -kpara mí ... (Linux Mint / Ubuntu 14.04 base) pero sí! finalmente resolvió esto ...
Louis Maddox
8
simplemente ejecutando el comando "ssh-add" e ingrese la contraseña una vez, la línea de comando no le pedirá la contraseña nuevamente.
AVINASH SHRIMALI
14
No necesitas ningún argumento; simplemente ejecutando ssh-addagregará automáticamente ~/.ssh/id_rsa(entre otros archivos). Y no hay razón para enviar la salida a /dev/null; mucho mejor ver el informe de lo que hizo.
Ted Hopp
66
¿Alguna idea de por qué aparece "No se pudo abrir una conexión con su agente de autenticación"?
dokaspar
252

En Mac OSX, puede agregar su clave privada al llavero usando el comando:

ssh-add -K /path/to/private_key

Si su clave privada se almacena en ~ / .ssh y se llama id_rsa:

ssh-add -K ~/.ssh/id_rsa

Luego se le pedirá su contraseña, que se almacenará en su llavero.

Editar: reiniciar el controlador

Para no tener que completar su contraseña incluso después de reiniciar, agregue lo siguiente a su archivo de configuración ssh (comúnmente ubicado en ~ / .ssh / config)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa
Groot
fuente
77
En mi caso, sigue solicitando la frase de contraseña después de reiniciar (macOS Sierrra 10.12.2). ¿Alguna idea sobre cómo resolver esto?
inigo333
99
No importa, acabo de encontrar el problema. Es un error (¿característica?) De Mac OS X 10.12 en el que el agente ssh no carga automáticamente frases de contraseña en el llavero durante el inicio. github.com/lionheart/openradar-mirror/issues/15361
inigo333
2
@ inigo333 interesante. ¡Acabo de actualizar y noté esto yo mismo!
Groot
1
@Groot, por cierto, agregar "Host * UseKeychain yes" a "~ / .ssh / config", como se sugiere en otras respuestas, soluciona el problema.
inigo333
1
Esta debería ser la respuesta aceptada. Especialmente el archivo de configuración en~/.ssh
Xavi
186

¡Intenté todas las respuestas aquí y ninguna de estas respuestas funcionó ! Mi contraseña no persistiría entre sesiones / reinicios de mi Mac.

Lo que descubrí al leer este OpenRadar y esta discusión en Twitter fue que Apple cambió a propósito el comportamiento de ssh-agent en macOS 10.12 Sierra para que ya no cargue automáticamente las claves SSH anteriores. Para mantener el mismo comportamiento que El Cap, hice lo siguiente:

  1. ssh-add -K ~/.ssh/id_rsa
    Nota: cambie la ruta a donde se encuentra su clave id_rsa.
  2. ssh-add -A
  3. Cree (o edite si existe) el siguiente ~/.ssh/configarchivo:

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

¡Y ahora mi contraseña se recuerda entre los reinicios de mi Mac!

ChrisJF
fuente
2
Esto podría ser algo útil para agregar a las páginas de documentación de github u osx . Me costó mucho descubrir por qué mi Mac con 10.11 y mi otra con 10.12 se comportaron de manera diferente.
Grr
55
Me pasó después de una actualización de OSX, gracias (creo que ssh-add -Ano es necesario si solo tienes una clave ~/.ssh/id_rsa)
Dorian
1
Esta es una respuesta increíblemente útil. Gracias, has hecho mi dia.
Jan Nash
2
A partir de octubre de 2017, esta respuesta es exactamente lo que está buscando si usa macOS 10.12 o superior.
brogrammer
3
Y esto ahora está en los documentos de github
Todd Price
35

Puedes eliminar la frase de contraseña de la clave

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

o puedes correr

$ ssh-keygen -p

obtienes un mensaje para el archivo de claves. De manera predeterminada, ~/.ssh/id_rsapresione enter

Se le pedirá que ingrese la frase de contraseña actual.

Luego habrá un mensaje para la nueva frase de contraseña, presione enter

sudo bangbang
fuente
Esto debería ser más alto que muchas de las respuestas casi idénticas para agregar la frase de contraseña al llavero. Tuve que darle mi clave pública a un administrador e incluí una frase de contraseña que me resultaba molesto escribir cada vez. Esta es una solución limpia cuando no tiene mucho control sobre su máquina ( -K, -k, -Ano funcionó para mí).
gwg
1
Esto es lo único que funcionó para mí en los reinicios, todos los comandos ssh-add -K, -k, etc. no hicieron nada por mí.
Amalgovinus
28

Simplemente ejecute el siguiente comando:

ssh-add -K

Nunca le pedirá que ingrese la contraseña nuevamente.

usuario3640130
fuente
3
Esto funciona muy bien, pero estaba un poco preocupado por ejecutar un comando aleatorio. Sin embargo, si marca los documentos ssh-addsimplemente "agrega identidades de clave privada al agente de autenticación", y la -Kopción simplemente lo hace así "Al agregar identidades, cada frase de contraseña también se almacenará en el llavero del usuario".
machineghost
8
En realidad, solo lo arregló hasta que reinicié :(
machineghost
55
en el shell bash para Windows, el indicador "-k" debe estar en minúsculas. Solo para tu información
Fergus
27

Asegúrese de estar usando ssh para su repositorio también

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)

ingrese la descripción de la imagen aquí

No use https, si su control remoto usa https, seguirá pidiendo contraseña, incluso si ha agregado la clave pública a Github y la clave privada a ssh-agent. A continuación siempre pedirá contraseña

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)

Mahtab Alam
fuente
Sí, diferenciar entre los dos tipos de URL remotos fue útil para mí. Esto me ayudó en términos de git pully git push. Cambié mi url de tipo HTTPS a tipo SSH, y funcionó: git pulldejé de pedir contraseña.
Michael R
1
El cambio se puede hacer con este comando:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
guido
17

Tuve que ejecutar:

eval `ssh-agent -s`
ssh-add

Nota : Deberá hacer esto nuevamente después de cada reinicio. Si desea evitarlo, ingréselo en su archivo " .bashrc " que se encuentra en C:\Users\<<USERNAME>>\.bashrcWindows. Probablemente esté oculto, así que asegúrese de poder ver los archivos ocultos.

Solución encontrada aquí .

Negro
fuente
15

Si estás usando Windows, esto funcionó para mí:

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

Solicitará una frase de contraseña en el segundo comando, y eso es todo.

Centro de deportes acuáticos
fuente
1
Cuando cierra sesión y vuelve a iniciar sesión, debe volver a ingresar la contraseña cada vez.
trainoasis
12

TL; DR
Debe usar un agente ssh. Entonces, abra la terminal e intente

ssh-add

antes de empujar a git. Ingrese su frase de contraseña cuando se le solicite.

Mira la respuesta original de StackExchange aquí

Junaid
fuente
6

Recientemente actualicé a macOS Mojave e instalé algunas herramientas a través de homebrew, que parecía cambiar la versión de Apple ssh-addpor otra diferente. Mi versión predeterminada de ssh-add no tenía la -Kopción. Esto condujo al siguiente error:

# ssh-add: illegal option -- K

Puede ver qué versión de ssh-addusted tiene ejecutando which ssh-add.

(La mía fue almacenada en /usr/local/bin/ssh-add)

Para solucionar esto, tuve que señalar la clave de la versión de Apple :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git / GitHub funcionó perfectamente después. Para obtener más información, consulte: Error: ssh-add: opción ilegal - K

aboutaaron
fuente
Tuve el mismo problema en mi iMac con High Sierra 10.13.6, esto funcionó para mí. ¡Gracias!
emccracken
La mía había estado funcionando bien y al azar comenzó a pedir frases de contraseña nuevamente, podría haber sido después de una actualización reciente. Esto lo solucionó! Gracias
mc01
5

Para Mac OSX Sierra, descubrí que las correcciones sugeridas en el problema de github para Open Radar solucionaron mi problema. Parece que Sierra cambió el comportamiento predeterminado (comencé a tener este problema después de la actualización).

Este me pareció especialmente útil: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

Esto dio como resultado que mi identidad se agregara al agente, después de ejecutar

ssh-add -K {/path/to/key}

Para resumir, en OSX.12:

ssh-add -K {/path/to/key}
ssh-add -A 

debería resultar en:

Identity added: {/path/to/file} ({/path/to/file})

EDITAR: Noté que la próxima vez que hice un reinicio completo (también conocido como el agente se detuvo y reinició), esto ya no funcionó. La solución más completa es lo que @ChrisJF mencionó anteriormente: crear un ~/.ssh/configarchivo. Aquí está el resultado mío:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

Puede agregar tantas IdentityFileentradas como necesite, pero esta es la configuración predeterminada. Esta es la respuesta de "tendencia" en el enlace de radar abierto arriba, ATM, también.

zedd45
fuente
El editado resolvió mi problema. MacOS Mojave 10.14.3
José
4

Trabajó en LinuxMint / Ubuntu

Haz los siguientes pasos

Paso 1:

Ir a archivo => /.ssh/config

Guarde las siguientes líneas en el archivo

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

No olvides agregar esta línea AddKeysToAgent sí

Paso 2:

Abra la terminal y agregue el conjunto de claves al ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

proporcionar la frase de contraseña

Dhinesh Sí
fuente
3

Ya había establecido una frase de contraseña, pero por alguna razón ya no la reconocería. Así que simplemente agregué el archivo de identidad a mi llavero nuevamente ssh-add -Ky dejé de pedir mi contraseña.

André Herculano
fuente
esto solo carga claves y no certificados
numediaweb
3

Esto es lo que funcionó para mí:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
daniel sp
fuente
2

El problema parece ser porque estás clonando desde HTTPS y no desde SSH. Intenté todas las otras soluciones aquí, pero todavía tenía problemas. Esto lo hizo por mi.

Usando el me osxkeychain helpergusta así:

  1. Averigüe si lo tiene instalado.

    git credential-osxkeychain

  2. Si no está instalado, se le pedirá que lo descargue como parte de Xcode Command Line Tools.

  3. Si está instalado, dígale a Git que use osxkeychain helperusando la credential.helperconfiguración global :

    git config --global credential.helper osxkeychain

La próxima vez que clone una URL HTTPS, se le pedirá el nombre de usuario / contraseña y le otorgará acceso al llavero OSX. Después de hacer esto por primera vez, debe guardarse en su llavero y no tendrá que volver a escribirlo.

Bryan Perez
fuente
2

Esta respuesta es principalmente para usuarios de Windows y también es relevante si tiene problemas para clonar con tfs, github o gitlab en cualquier otro sistema operativo.

El modo de autenticación predeterminado cuando se usa SSH es la clave privada. Cuando eso falla por alguna razón, el agente ssh recurre a la autenticación basada en nombre de usuario y contraseña.

Hay varias razones por las cuales la autenticación predeterminada basada en claves podría haber fallado. Los siguientes son los casos más comunes:

a) El agente ssh no puede encontrar el archivo de clave privada predeterminado que es id_rsa , y no se especifica explícitamente ninguna otra ruta de clave.

b) La clave pública almacenada en el servidor es incorrecta.

c) La ruta que está intentando clonar es incorrecta.

En cualquier caso, para solucionar el problema en primer lugar, ejecute el comando git clone con un registro detallado con el comando:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

Puede seguir cada paso en el registro para tener una idea de cuál podría ser el problema.


Solución de problemas en caso de (a)

  • Asegúrese de tener el nombre de clave predeterminado id_rsa en el directorio .ssh. Es posible que haya especificado un nombre de clave diferente al generar la clave con el comando ssh-keygen o tal vez no haya ninguna clave en absoluto).
  • En caso de que desee especificar una clave diferente para la autenticación, use el siguiente comando:

    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    

Solución de problemas en caso de (b)

  • Asegúrese de que no haya espacios en blanco adicionales al almacenar la clave pública en el servidor.

Solución de problemas en caso de (c)

  • Asegúrese de no intentar clonar con la versión https de la ruta del repositorio.
caosificador
fuente
1

Si está utilizando ssh url para git, cuando se le solicite la contraseña para ssh, coloque el nombre de usuario como " git " y la contraseña como la contraseña de inicio de sesión de su sistema

Vinayak Deshpande
fuente
Cambiar el tipo de URL remota del repositorio HTTPSpara SSHresolver mi problema. Gracias @MichaelR, tu artículo fue realmente útil, aunque no he leído nada de él: D
Geradlus_RU
1

Me gustaría agregar una respuesta para aquellos que aún necesiten ingresar la contraseña porque han establecido IdentitiesOnly como sí. Esto puede deberse a que varias claves y el archivo de identidad son claves para git o servidor.

Después de haber generado la clave y copiarla en el servidor:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub [email protected]

Descubrí que no funcionaba.

Luego fui a revisar el ~/.ssh/configarchivo, vi esto en la parte inferior:

Host *
IdentitiesOnly yes

Luego agrego esto arriba:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Solo puedo iniciar sesión ingresando ssh 12gpu.

Luego puede agregar múltiples claves ssh usando sus nombres favoritos, y solo necesita agregar la configuración como las cuatro líneas anteriores al archivo de configuración.

Host es el nombre que le gustaría ingresar cuando se conecte al servidor más tarde; la NombreHost es IP del servidor o dominio como github.com; Usuario es el nombre de usuario con el que inicia sesión en el servidor, como el nombre de usuario o git para github o gitlab; y el IdentityFile es el archivo donde almacena la clave que ha generado.

Lerner Zhang
fuente
1

En general, estos son los pasos para permitirle realizar una conexión remota a su servidor utilizando ssh sin contraseña:

  • Cree un par de claves rsa privadas y públicas

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • Copie su clave pública e inicie sesión en su servidor remoto

  • Agregue su clave pública a .ssh / certified_keys

  • Si tiene varias claves ssh en su computadora, puede agregar su clave usando ssh-add

    $ ssh-add /path/to/private/key

  • Entonces intente ssh a su servidor

    $ ssh username@your_ip_address

Fuente: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html

Anang Satria
fuente
0

Utilice sshla URL remota proporcionada por Github no https.

Lost Koder
fuente
El OP dijo claramente que está usando SSH en lugar de HTTPS.
lento
0

Si está utilizando Windows y GIT sin herramientas de terceros y su clave no está protegida por una contraseña / frase de contraseña, use esto:

  1. La variable de entorno HOME debe configurarse en su perfil de usuario (por ejemplo, C: \ Users \ Laptop)
  2. Vaya a la carpeta C: \ Users \ Laptop \ .ssh \ y edite el archivo "config" (¡o cree el archivo!) Ejemplo: C: \ Users \ Laptop.ssh ​​\ config (nota: ¡no hay un número al final!)
  3. Agregue su host git-server al archivo "config" de la siguiente manera:

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Guarde el archivo y clone el repositorio de esta manera:

    git clone ssh: //myhostname.com/git-server/repos/picalc.git

Puede usar parámetros de configuración adicionales para la entrada del host del archivo "config". Estos se pueden encontrar en su carpeta de instalación de git local, por ejemplo, " C: \ Archivos de programa \ Git \ etc \ ssh \ ssh_config ". Extracto:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
Fabian Stern
fuente
0

El mismo problema para mí y la solución fue:

Vea este documento de github para convertir la URL del control remoto de https a ssh. Para verificar si la URL del control remoto es ssh o https, use git remote -v. Para cambiar de https a ssh: git remote set-url origin [email protected]: USERNAME / REPOSITORY.git @jeeYem

Bruno Leite
fuente
0

Mobaxterme tenía una interfaz de usuario para ello

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]

Amir Heshmati
fuente
0

Clave SSH: sigo solicitando contraseña y frase de contraseña

Si está en Windows y usa PuTTY como generador de claves SSH , esta solución rápida y fácil resultó ser la única solución que funciona para mí usando una línea de comando de Windows simple:

  1. Su instalación PuTTY debería venir con varios ejecutables, entre otros, pageant.exeyplink.exe
  2. Al generar una clave SSH con PuttyGen, la clave se almacena con la .ppkextensión
  3. Ejecutar "full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"( debe ser citado). Esto ejecutará el pageantservicio y registrará su clave (después de ingresar la contraseña).
  4. Establecer variable de entorno GIT_SSH=full\path\to\plink.exe( no se debe citar). Esto redirigirá los comandos relacionados con la comunicación git ssh a los plinkque usarán el pageantservicio para la autenticación sin pedir la contraseña nuevamente.

¡Hecho!

Nota 1: Esta documentación advierte sobre algunas peculiaridades cuando se trabaja con la GIT_SHHconfiguración de la variable de entorno. Lo que pueda push, pull, fetchcon cualquier número de parámetros adicionales a la orden y todo funciona muy bien para mí (sin necesidad de escribir un script adicional tal como se sugiere en la misma).

Nota 2: La ruta a la PuTTYinstalación suele estar en PATHmodo que puede omitirse. De todos modos, prefiero especificar los caminos completos.

Automatización:

El siguiente archivo por lotes se puede ejecutar antes de usar git desde la línea de comandos. Ilustra el uso de la configuración:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

De todos modos, tengo la GIT_SSHvariable configurada SystemPropertiesAdvanced.exe > Environment variablesy pageant.exeagregada como la Runclave de registro (*).

(*) Pasos para agregar una Runclave de registro>

  1. correr regedit.exe
  2. Navegar a HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
  3. Do (menú) Edit > New > String Value
  4. Ingrese un nombre arbitrario (pero único)
  5. Hacer (menú) Edit > Modify...(o hacer doble clic)
  6. Ingrese la ruta entre comillas hacia pageant.exey public key, por ejemplo, "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(observe que las %ProgramFiles%variables etc. no funcionan aquí a menos que elija Expandable string valueen lugar del String valuepaso 3).
PavDub
fuente
-1

Creo que la respuesta de @sudo bangbang debería ser aceptada.

Cuando genere la clave ssh, simplemente presione "Enter" para omitir la escritura de su contraseña cuando le solicite que configure la contraseña.

Eso significa que NO NECESITA una contraseña cuando usa la clave ssh, así que recuerde cuando genere la clave ssh, NO ingrese la contraseña, solo presione 'Enter' para omitirla.

andrava
fuente
1
Esta es una muy mala sugerencia. Ver el comentario de @ user456814
Sos