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.
pageant
, que es parte deputty
. 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.Respuestas:
Si trabaja con
HTTPs
URL, siempre le pedirá su nombre de usuario / contraseña.Si está utilizando correctamente
SSH
al 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.
fuente
git remote -v
. Para cambiar de https a ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
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í:
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
-K
opción (-k
para Ubuntu) al agregar la identidad de esta manera:Una vez más, esto le pedirá la frase de contraseña, ingrésela y esta vez nunca más le pedirá esta identidad.
fuente
-K
opción para almacenar la frase de contraseña en su llavero al agregarla, por ejemplossh-add -K ~/.ssh/id_rsa
-k
para mí ... (Linux Mint / Ubuntu 14.04 base) pero sí! finalmente resolvió esto ...ssh-add
agregará 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.En Mac OSX, puede agregar su clave privada al llavero usando el comando:
Si su clave privada se almacena en ~ / .ssh y se llama 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)
fuente
~/.ssh
¡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:
ssh-add -K ~/.ssh/id_rsa
Nota: cambie la ruta a donde se encuentra su clave id_rsa.
ssh-add -A
Cree (o edite si existe) el siguiente
~/.ssh/config
archivo:¡Y ahora mi contraseña se recuerda entre los reinicios de mi Mac!
fuente
ssh-add -A
no es necesario si solo tienes una clave~/.ssh/id_rsa
)Puedes eliminar la frase de contraseña de la clave
o puedes correr
obtienes un mensaje para el archivo de claves. De manera predeterminada,
~/.ssh/id_rsa
presione enterSe le pedirá que ingrese la frase de contraseña actual.
Luego habrá un mensaje para la nueva frase de contraseña, presione enter
fuente
-K
,-k
,-A
no funcionó para mí).Simplemente ejecute el siguiente comando:
Nunca le pedirá que ingrese la contraseña nuevamente.
fuente
ssh-add
simplemente "agrega identidades de clave privada al agente de autenticación", y la-K
opción simplemente lo hace así "Al agregar identidades, cada frase de contraseña también se almacenará en el llavero del usuario".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)
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)
fuente
git pull
ygit push
. Cambié mi url de tipo HTTPS a tipo SSH, y funcionó:git pull
dejé de pedir contraseña.git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Tuve que ejecutar:
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>>\.bashrc
Windows. Probablemente esté oculto, así que asegúrese de poder ver los archivos ocultos.Solución encontrada aquí .
fuente
Si estás usando Windows, esto funcionó para mí:
Solicitará una frase de contraseña en el segundo comando, y eso es todo.
fuente
Mira la respuesta original de StackExchange aquí
fuente
Pruebe
ssh-agent
como se explica allí: https://help.github.com/articles/working-with-ssh-key-passphrasesfuente
Recientemente actualicé a macOS Mojave e instalé algunas herramientas a través de homebrew, que parecía cambiar la versión de Apple
ssh-add
por otra diferente. Mi versión predeterminada dessh-add
no tenía la-K
opción. Esto condujo al siguiente error:# ssh-add: illegal option -- K
Puede ver qué versión de
ssh-add
usted tiene ejecutandowhich 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 :
Git / GitHub funcionó perfectamente después. Para obtener más información, consulte: Error: ssh-add: opción ilegal - K
fuente
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
Esto dio como resultado que mi identidad se agregara al agente, después de ejecutar
Para resumir, en OSX.12:
debería resultar en:
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/config
archivo. Aquí está el resultado mío:Puede agregar tantas
IdentityFile
entradas 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.fuente
Trabajó en LinuxMint / Ubuntu
Haz los siguientes pasos
Paso 1:
Guarde las siguientes líneas en el archivo
Paso 2:
Abra la terminal y agregue el conjunto de claves al ssh-add
proporcionar la frase de contraseña
fuente
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 -K
y dejé de pedir mi contraseña.fuente
Esto es lo que funcionó para mí:
fuente
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 helper
gusta así:Averigüe si lo tiene instalado.
git credential-osxkeychain
Si no está instalado, se le pedirá que lo descargue como parte de Xcode Command Line Tools.
Si está instalado, dígale a Git que use
osxkeychain helper
usando lacredential.helper
configuració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.
fuente
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:
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)
En caso de que desee especificar una clave diferente para la autenticación, use el siguiente comando:
Solución de problemas en caso de (b)
Solución de problemas en caso de (c)
fuente
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
fuente
HTTPS
paraSSH
resolver mi problema. Gracias @MichaelR, tu artículo fue realmente útil, aunque no he leído nada de él: DMe 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:
Descubrí que no funcionaba.
Luego fui a revisar el
~/.ssh/config
archivo, vi esto en la parte inferior:Luego agrego esto arriba:
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.
fuente
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
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
fuente
Utilice
ssh
la URL remota proporcionada por Github nohttps
.fuente
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:
Agregue su host git-server al archivo "config" de la siguiente manera:
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:
fuente
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
fuente
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]
fuente
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:
pageant.exe
yplink.exe
.ppk
extensión"full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"
( debe ser citado). Esto ejecutará elpageant
servicio y registrará su clave (después de ingresar la contraseña).GIT_SSH=full\path\to\plink.exe
( no se debe citar). Esto redirigirá los comandos relacionados con la comunicación git ssh a losplink
que usarán elpageant
servicio 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_SHH
configuración de la variable de entorno. Lo que puedapush
,pull
,fetch
con 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
PuTTY
instalación suele estar enPATH
modo 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:
De todos modos, tengo la
GIT_SSH
variable configuradaSystemPropertiesAdvanced.exe > Environment variables
ypageant.exe
agregada como laRun
clave de registro (*).(*) Pasos para agregar una
Run
clave de registro>regedit.exe
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
Edit > New > String Value
Edit > Modify...
(o hacer doble clic)pageant.exe
ypublic 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 elijaExpandable string value
en lugar delString value
paso 3).fuente
Como se explica en Clonación, un repositorio Git de VSTS a través de SSH solicita una contraseña. Inesperado
El problema puede deberse a un error de autenticación de clave pública, por lo que luego solicita la contraseña de la cuenta de mi empresa.
Esto no sucedería si la autenticación de clave pública tuviera éxito.
Por lo tanto, puede consultar id_rsa.pub e incluso crear uno nuevo.
fuente
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.
fuente