remove - git tag best practices
github: No hay métodos de autenticación compatibles disponibles (14)
utilizo github y he agregado y sincronizado archivos en mi computadora portátil con anterioridad.
desde hace poco tiempo comencé a recibir " PuTTY Fatal Error: desconectado: no hay métodos de autenticación compatibles disponibles " después de ejecutar:
git pull master de origen (o push)
sin embargo
ssh [email protected] devuelve la respuesta correcta: ERROR: Hola, nombre de usuario! Se ha autenticado con éxito, pero GitHub no proporciona acceso de shell. Se ha cerrado la conexión a github.com.
Después de cavar en github encontré este morcel:
No hay métodos de autenticación compatibles disponibles Debe tener en cuenta la variable de entorno GIT_SSH, que es utilizada por git para encontrar su cliente de habla ssh, si ssh no funciona para usted. La instalación de git puede estar utilizando plink.exe (a través de GIT_SSH) para realizar la autenticación. Si es así, asegúrese de ejecutar pageant.exe y la clave que creó para github cargada en ella. Esto proporciona la clave para plink.exe; sin él, se producirá el error anterior.
no estoy seguro de qué es plink.exe o peagant.exe ... y el hecho de que ssh [email protected] parece autenticarse correctamente me hace preguntarme cuál es la mejor solución aquí ... ciertamente no quiero complicar demasiado mi configuración si no necesario.
"... no estoy seguro de qué es plink.exe o peagant.exe ..."
Desde que preguntas: plink y pageant son parte de la suite PuTTY, que es una implementación de SSH que admite Linux y Windows y es completamente dominante en Windows.
Secure Shell (SSH) es un protocolo de red criptográfica para asegurar la comunicación de datos. Establece un canal seguro sobre una red insegura en una arquitectura cliente-servidor, conectando una aplicación de cliente SSH con un servidor SSH. Las aplicaciones comunes incluyen el inicio de sesión remoto de la línea de comandos, la ejecución remota de comandos, pero cualquier servicio de red puede protegerse con SSH.
si alguna vez usó Telnet, es así (pero más seguro): le permite acceder de forma remota al shell bash (línea de comandos) de un host Linux.
PuTTY es un emulador de terminal gratuito y de código abierto, consola serie y aplicación de transferencia de archivos de red. Es compatible con varios protocolos de red, incluidos SCP, SSH, Telnet, rlogin ...
En Windows, es el software dominante para acceder de forma remota a la línea de comandos de un host de Linux bajo el protocolo SSH (arriba). En Windows, las extensiones .exe son para ejecutables. Entonces esas notas sobre plink.exe y pageant.exe probablemente no se apliquen si estás en Linux . PuTTY incluye
Plink : una interfaz de línea de comandos para los extremos posteriores de PuTTY
Concurso : un agente de autenticación SSH para PuTTY, PSCP y Plink
De ( http://en.wikipedia.org/wiki/Secure_Shell#Key_management )
Cuando la clave pública está presente en el extremo remoto y la clave privada coincidente está presente en el extremo local, ya no es necesario ingresar la contraseña ... para mayor seguridad, la clave privada se puede bloquear con una frase de contraseña.
Entonces github está alojado en una máquina Linux y usa SSH para asegurar la conexión. SSH se autentica con contraseñas o claves, muchos hosts (github?) Solo se autentican con claves. La configuración aparentemente intenta autenticarse con una clave. Las claves y los hosts no son uno a uno: puede tener dos claves para el mismo host y / o dos hosts para la misma clave, por lo que deben administrarse. Si se encuentra en Windows, probablemente se acceda a su sesión de SSH a través de plink y sus claves probablemente las administre el concurso.
Importe la clave que necesita cada vez que carga el concurso. Si siguió las guías que decían "importar su clave" y vio que funcionaba, pero ahora no funciona, consulte el Capítulo 9: Uso del concurso para la autenticación .
Un último consejo si está en Windows: es posible que tenga varias instancias de la suite PuTTY instaladas por varias herramientas. TortoiseGit, por ejemplo, instala el suyo propio.
Usando TortoiseGit
Establezca TortoiseGit> Configuración> Red> Cliente SSH en C:/Program Files (x86)/Git/bin/ssh.exe
o C:/Program Files/Git/usr/bin/ssh.exe
En mi máquina con Windows 7 ejecutando Github para Windows usando la versión de Git 1.8.3.msysgit.0. Descubrí que la actualización de la variable de entorno del sistema GIT_SSH a C: / Archivos de programa (x86) / Git / bin / ssh.exe parecía hacer el truco. Esto también solucionó mi problema al contactar el repositorio git de OpenShift.
Experimenté este problema porque mi GIT_SSH
apuntaba a la versión de TortoiseSVN de Plink.exe
. Lo cambié para apuntar a la versión de TortoiseGit, reinicié el cmd y funcionó.
No recuerdo exactamente, pero la versión de TortoiseSVN podría haber sido de 32 bits y la versión de TortoiseGit de 64 bits (que se encuentra en Program Files
, no en Program Files (x86)
).
Vuelva a verificar su env de GIT_SSH
var.
Prefiero usar git con cmd.exe
normal (en Console2 por supuesto)
Funcionó para mí en Windows 8: la variable GIT_SSH apuntaba a plink.exe, la cambiaba en la configuración del sistema para apuntar al binario de ssh y eso solucionó el problema. Para descubrir la ruta completa al ssh, ejecuta:
where ssh
Me encontré con este mismo problema, sin embargo, la solución GIT_SSH pareció funcionar una vez para mí. Después de reiniciar la computadora, me di cuenta de que era otra cosa, ya que pude clonar mis repositorios privados sin problemas usando Git Bash o Command Prompt, pero no en Sublime Text 3 con el complemento SublimeGit. Mi solución fue simple y en realidad es lo que pero pensé que podría usar alguna dirección;)
Básicamente, solo necesita editar ~/.ssh/config
y asegurarse de que el nombre de usuario sea git
. También puede indicarle que use una clave SSH específica para Github. Mi archivo ~/.ssh/config
tiene el siguiente aspecto:
Host gh
Hostname github.com
User git
IdentityFile ~/.ssh/github_rsa.pub
Tengo una clave específica para Github debido a la cantidad de cosas que hago a lo largo de mi día, pero si solo tienes una, generalmente será ~/.ssh/id_rsa.pub
como Github explica aquí .
Sé que todos tienen una solución diferente, pero dejaré esto aquí para cualquier persona que pueda encontrar este artículo sin una solución. ¡Buena suerte!
Mi problema era que estaba intentando usar mi nombre de usuario github. Aparentemente cuando usas Github (¿o es algo de Git?) , Si usas la autenticación basada en claves, debes configurar tu nombre de usuario en git
.
No estoy seguro de por qué incluso necesitas un nombre de usuario, tal vez alguien con más conocimiento puede explicar eso.
Mismo error, se observa una solución diferente aquí - Problema de conexión a GitHub en Windows, incluso a través de PuTTY
Obtuve este error cuando uso TortoiseGit para clonar un repositorio de GitHub. Se corrigió haciendo clic en "Cargar clave de masilla" y seleccionando un archivo de clave (* .pkk) en el diálogo de clonación de Git.
Obtuve este problema (ssh directo funcionó, pero git pull falló) debido a que mi control remoto git no era lo que yo pensaba que era.
Sí, sí, sé que es un error estúpido, pero sucede y vale la pena verificarlo.
Utilice git remote -v
Puede obtener plink & pageant desde aquí: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Son herramientas PuTTY.
Puedes crear un archivo llamado ".profile" en tu directorio personal, para mí eso es C: / Users / [user]
Dentro de ese archivo, ponga la siguiente línea de código:
GIT_SSH="/usr/bin/ssh.exe"
Esto establecerá la variable de entorno GIT_SSH para usar el cliente ssh incluido con git.
El script .profile se ejecuta cuando inicias la línea de comando de Git Bash.
Editar: Este es mi .profile. Le pedirá su contraseña la primera vez que inicie el comando del comando git, y luego la recordará a partir de ese momento, hasta que reinicie su computadora. Muy útil para que no tenga que seguir ingresando su contraseña cada vez que quiera hacer algo.
SSH_ENV="$HOME/.ssh/environment"
GIT_SSH="/usr/bin/ssh.exe"
function start_agent {
echo "Initializing new SSH agent..."
/usr/bin/ssh-agent | sed ''s/^echo/#echo/'' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn''t work under cygwin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
Si está usando el concurso y recibe el error descrito en la pregunta después de reiniciar su PC (o de lo contrario, cierre y vuelva a abrir el concurso):
El error puede deberse a que el concurso no tenga su clave GitHub SSH cargada activamente. Por defecto, el concurso no carga automáticamente las claves de la sesión anterior cuando se inicia.
Para cargar la clave:
- Desfile abierto. (En Windows, si se ejecuta el concurso, tendrá un ícono en la bandeja del sistema. Haga doble clic en eso).
- Haga clic en el botón Agregar clave y proceda a agregar su clave GitHub SSH existente.
Para evitar este problema en el futuro, puede configurar el Pageant para que cargue automáticamente su clave cuando se inicie. (El concurso le solicitará automáticamente una contraseña si su clave está protegida con contraseña).
Pasos para hacerlo (suponiendo que ya tiene el concurso configurado para ejecutarse cuando se inicia Windows):
- Encuentre el acceso directo utilizado por Windows para ejecutar el concurso cuando se inicia Windows. (Puede estar en la carpeta Inicio, que se puede abrir con Inicio> Ejecutar>
shell:startup
) - En el cuadro de diálogo Propiedades del acceso directo, agregue la ruta completa y el nombre de archivo del archivo de clave SSH al campo "Destino".
Referencia y detalles completos: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html
Para usuarios de TortoiseGit en Windows
Originalmente, solía configurar la mayoría de mis repositorios Github / Bitbucket usando las URLs del repositorio SSH ya que (originalmente) solía ser la única forma conveniente de evitar que TortoiseGit solicitara su contraseña en cada acción.
Pero poner TortoiseGit de esta manera siempre fue doloroso. Cada vez me llevó horas configurar correctamente, ya que las opciones de instalación predeterminadas nunca parecían funcionar (incluso a partir de 2016, sheesh!).
Pero TortoiseGit ahora tiene una mejor administración de contraseñas para HTTPS, y Github en realidad recomienda usar URL HTTPS siempre que sea posible.
SSH URL:
[email protected]:User/repo-name.git
URL de HTTPS:
https://github.com/User/repo-name.git
Los beneficios de HTTPS son:
- Sin gestión o generación de claves SSH
- No es necesario tener constantemente en ejecución
pageant.exe
(que solicita su contraseña en cada lanzamiento) - Usando TortoiseGit de Australia, encuentro que los clones sobre HTTPS son 5-10 veces más rápidos que SSH