Me encuentro con este error de:
$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
! Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.
Intenté agregar las claves y aparece este error a continuación:
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
$ ssh-agent /bin/sh
y$ ssh-add $yourkey
git config --list
para ver si ha configuradocredential.helper
; si lo tiene, debe eliminar esta configuración, ya que el ayudante no ayuda.Respuestas:
¿Empezaste
ssh-agent
?Es posible que deba comenzar
ssh-agent
antes de ejecutar elssh-add
comando:Tenga en cuenta que esto iniciará el agente para msysgit Bash en Windows . Si está utilizando un shell o sistema operativo diferente, es posible que deba usar una variante del comando, como las que se enumeran en las otras respuestas .
Ver las siguientes respuestas:
Para iniciar automáticamente ssh-agent y permitir que una sola instancia funcione en varias ventanas de consola, consulte Iniciar ssh-agent al iniciar sesión .
¿Por qué necesitamos usar en
eval
lugar de solossh-agent
?Para saber por qué, vea la respuesta de Robin Green .
Claves públicas vs privadas
Además, cada vez que lo uso
ssh-add
, siempre le agrego claves privadas. El archivo~/.ssh/id_rsa.pub
parece una clave pública, no estoy seguro de si eso funcionará. ¿Tienes un~/.ssh/id_rsa
archivo? Si lo abre en un editor de texto, ¿dice que es una clave privada?fuente
ssh-add
simplemente descifra una clave privada cifrada en la máquina host, para que pueda usarse localmente ... nunca se envía a nadie . Supongo que solo las claves públicas se envían a través de una red. ¿Es mi comprensión incorrecta?eval ssh-agent -s
funciona, perossh-agent
por sí solo no.SSH_AUTH_SOCK
IIRC). Si solo ejecutassh-agent
, el agente se iniciará, pero SSH no tendrá idea de dónde encontrarlo.Probé las otras soluciones en vano. Investigué más y descubrí que el siguiente comando funcionaba. Estoy usando Windows 7 y Git Bash .
Más información en: https://coderwall.com/p/rdi_wq
fuente
El siguiente comando funcionó para mí. Estoy usando CentOS.
fuente
ssh-add my.id_rsa
me fallaría. Peroexec ssh-agent zsh
dio un ambiente donde pudessh-add
sin problema. Y estoy dentro de mi contenedor acoplable :)MsysGit o Cygwin
Si está utilizando Msysgit o Cygwin, puede encontrar un buen tutorial en SSH-Agent en msysgit y cygwin y bash :
Agregue un archivo llamado
.bashrc
a su carpeta de inicio.Abra el archivo y péguelo en:
Esto supone que su clave está en la
~/.ssh/id_rsa
ubicación convencional . Si no es así, incluya una ruta completa después delssh-add
comando.Agregar o crear un archivo
~/.ssh/config
con el contenidoEn el tutorial original, el
ForwardAgent
parámetro esYes
, pero es un error tipográfico. Use todo en minúsculas o obtendrá errores.Reinicie Msysgit. Le pedirá que ingrese su frase de contraseña una vez, y eso es todo (hasta que finalice la sesión, o su agente ssh sea asesinado).
Mac OS X
Si no desea iniciar un nuevo agente ssh cada vez que abra un terminal, consulte Llavero . Ahora estoy en una Mac, así que utilicé el tutorial ssh-agent con zsh & keychain en Mac OS X para configurarlo, pero estoy seguro de que una búsqueda en Google tendrá mucha información para Windows.
Actualización : una mejor solución en Mac es agregar su clave al llavero Mac OS:
Simple como eso.
fuente
eval `ssh-agent -s`
el proceso no se detiene cuando salgo de cygwin.ps -u $(whoami) | grep ssh-agent &> /dev/null || eval $(ssh-agent)
; de lo contrario, siempre se inicia un nuevo agente ssh. Maté mi máquina de vez en cuando cuando el usuario tenía cronjobs.ForwardAgent yes
no es necesario y es un riesgo de seguridad no teórico si está configurado para cualquier servidor no confiable. El acceso local a su agente clave debería funcionar independientemente de esta configuración.No se pudo abrir una conexión con su agente de autenticación
Para resolver este error:
golpetazo:
tcsh:
Luego, use
ssh-add
como lo haría normalmente.Buen dato:
Siempre olvidé qué escribir para los comandos ssh-agent anteriores, así que creé un alias en mi
.bashrc
archivo como este:Ahora en lugar de usar
ssh-agent
, puedo usarssh-agent-cyg
P.ej
Fuente original de corrección:
http://cygwin.com/ml/cygwin/2011-10/msg00313.html
fuente
eval
comando cada vez que lo hubiera ejecutado anteriormentessh-agent
. Ahora uso un alias, vea la respuesta actualizada de cómo hago esto.fatal: Could not read from remote repository.
.Me enfrenté al mismo problema para Linux, y esto es lo que hice:
Básicamente, el comando ssh-agent inicia el agente, pero en realidad no establece las variables de entorno para que se ejecute. Simplemente envía esas variables al shell.
Necesitas:
y luego ssh-add. Consulte No se pudo abrir una conexión con su agente de autenticación .
fuente
ssh-add y ssh (suponiendo que esté utilizando las implementaciones openssh) requieren una variable de entorno para saber cómo comunicarse con el agente ssh. Si inició el agente en una ventana de símbolo del sistema diferente a la que está utilizando ahora, o si lo inició incorrectamente, ni ssh-add ni ssh verán esa variable de entorno establecida (porque la variable de entorno está configurada localmente para el comando se establece en)
No dice qué versión de ssh está usando, pero si está usando cygwin's, puede usar esta receta del Agente SSH en Cygwin :
Esto iniciará un agente automáticamente para cada nueva ventana de símbolo del sistema que abra (lo cual es subóptimo si abre varios mensajes de comando en una sesión, pero al menos debería funcionar).
fuente
eval $(ssh-agent)
y puedo usar ssh sin contraseña para cada nueva ventana de terminal.correr
Para obtener más detalles puedes buscar
o corre
fuente
ssh-copy-id
en ubuntu. No estoy seguro de por qué no podría agregar la clave sin usarssh-agent
para iniciar bash.ssh-agent zsh; ssh-add
Intenta con los siguientes pasos:
1) Abra Git Bash y ejecute:
cd ~/.ssh
2) Intenta ejecutar el agente:
eval $(ssh-agent)
3) En este momento, puede ejecutar el siguiente comando:
ssh-add -l
fuente
ps aux | grep ssh
y elkill
comando en la respuesta de Rick para matar a los agentes. Después de esossh-add
funcionó sin el modificador -l (Usar -l dio un error).eval 'ssh-agent'
como en la respuesta de Rick no funcionó, tuve que usareval $(ssh-agent)
como en la respuesta de Chechoro aquí.$(ssh-agent)
es equivalente`ssh-agent`
pero más legible.En lugar de usar
$ ssh-agent -s
, solía$ eval `ssh-agent -s`
resolver este problema.Esto es lo que realicé paso a paso (paso 2 en adelante en GitBash):
C:\user\<username>\.ssh\
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
$ ps aux | grep ssh
$ kill <pids>
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa
fuente
ssh-agent -s
y agregando una clave anterior usando ssh-add ~ / .ssh / id_rsa. Si genera una nueva clave SSH, deberá actualizar esa clave en todos sus servicios, como github, bitbucket, etc.ssh-agent -s
vuelva a iniciar "eval " y "ssh-add ~ / .ssh / id_rsa".En Windows 10 probé todas las respuestas enumeradas aquí, pero ninguna de ellas parecía funcionar. De hecho, dan una pista. Para resolver un problema, simplemente necesita 3 comandos. La idea de este problema es que ssh-add necesita que las variables de entorno SSH_AUTH_SOCK y SSH_AGENT_PID se establezcan con la ruta actual del archivo de calce de agente ssh y el número pid.
Esto guardará la salida de ssh-agent en el archivo. El contenido del archivo de texto será algo como esto:
Copie algo como "/tmp/ssh-kjmxRb2764/agent.2764" del archivo de texto y ejecute el siguiente comando directamente en la consola:
Copie algo como "3044" del archivo de texto y ejecute el siguiente comando directamente en la consola:
Ahora, cuando las variables de entorno (SSH_AUTH_SOCK y SSH_AGENT_PID) están configuradas para la sesión de consola actual, ejecute su comando ssh-add y no volverá a fallar al conectar el agente ssh.
fuente
set
porexport
Una cosa que encontré fue que
eval
no funcionó para mí usando Cygwin, lo que funcionó para mí fuessh-agent ssh-add id_rsa
.Después de eso me encontré con un problema de que mi clave privada estaba demasiado abierta, la solución que pude encontrar para eso (desde aquí ):
tanto como
finalmente pude usar:
fuente
eval `ssh-agent`
Usó, con los backticks`
alrededorssh-agent
, como se muestra en mi respuesta ? Eso funcionó bien para mí en Cygwin. Parece que tienes razón, esossh-agent ssh-add
también funciona, al menos en el msysgit Bash. Sin embargo, tenga en cuenta que esaid_rsa
es la clave predeterminada que se utiliza, por lo que no necesita especificarla conssh-agent ssh-add id_rsa
.Para amplificar la respuesta de n3o para Windows 7 ...
Mi problema era que algunas variables de entorno requeridas no estaban establecidas, y n3o es correcto porque ssh-agent le dice cómo establecer esas variables de entorno, pero en realidad no las establece.
Como Windows no te permite hacer "eval", esto es lo que debes hacer en su lugar:
Redirigir la salida de ssh-agent a un archivo por lotes con
Ahora use un editor de texto como el Bloc de notas para editar temp.bat. Para cada una de las dos primeras líneas: - Inserte la palabra "conjunto" y un espacio al comienzo de la línea. - Eliminar el primer punto y coma y todo lo que sigue.
Ahora borra la tercera línea. Su temp.bat debería verse así:
Ejecute temp.bat. Esto establecerá las variables de entorno que son necesarias para que ssh-add funcione.
fuente
Could not open a connection to your authentication agent.
cuando ejecuto ssh-add en Win10 PowerShell.Acabo de hacer que esto funcione. Abre tu
~/.ssh/config
archivo.Añadir lo siguiente
La página que me dio la pista Configurar SSH para Git decía que la sangría de un solo espacio es importante ... aunque tenía una configuración aquí de Heroku que no tenía ese espacio y funciona correctamente.
fuente
Si sigue estas instrucciones, su problema se resolverá.
Si estás en una máquina Mac o Linux, escribe:
Si estás en una máquina con Windows, escribe:
fuente
Déjame ofrecerte otra solución. Si acaba de instalar Git 1.8.2.2 o por ahí, y desea habilitar SSH, siga las instrucciones bien escritas .
Todo hasta el paso 5.6, donde puede encontrar un pequeño inconveniente. Si ya se está ejecutando un agente SSH, podría recibir el siguiente mensaje de error cuando reinicie bash
Si lo hace, use el siguiente comando para ver si se está ejecutando más de un proceso ssh-agent
Si ve más de un servicio ssh-agent, deberá eliminar todos estos procesos. Use el comando kill de la siguiente manera (el PID será único en su computadora)
Ejemplo:
Después de eliminar todos los procesos de ssh-agent, ejecute px aux | grep ssh nuevamente para asegurarse de que se hayan ido, luego reinicie Bash.
Voila, ahora deberías obtener algo como esto:
Ahora puede continuar en el paso 5.7 y más allá.
fuente
Para los usuarios de Windows , descubrí que cmd
eval `ssh-agent -s`
no funcionaba, pero usar git bash funcionó de maravillaeval `ssh-agent -s`; ssh-add KEY_LOCATION
y asegurarme de que el servicio de Windows "OpenSSH Key Management" no estuviera deshabilitadofuente
Esto ejecutará el agente SSH y se autenticará solo la primera vez que lo necesite , no cada vez que abra su terminal Bash. Se puede usar para cualquier programa que use SSH en general, incluidos ssh y scp. Solo agregue esto a
/etc/profile.d/ssh-helper.sh
:fuente
ps -A | grep ssh-agent
ops h -C ssh-agent
debería usarse en lugar deps | grep ssh-agent
echo ssh-auth | bash
fallará.AddKeysToAgent yes
(o useprompt
) a su entrada de configuración ssh (useHost *
para todos los Hosts). De esa manera, solo se le pedirá la contraseña SSH si realmente intenta conectarse, de lo contrario, se le podría pedir una contraseña para un simplegit diff
ogit status
.$HOME/.ssh
podría ser más robusto que/home/$(whoami)/.ssh
Tuve el mismo problema
Ubuntu
y las otras soluciones no me ayudaron. Finalmente me di cuenta de cuál era mi problema. Había creado misssh
claves en la/root/.ssh
carpeta, así que incluso cuando ejecutéssh-add
como root, no podía hacer su trabajo y seguía diciendoCreé mis claves ssh públicas y privadas en la
/home/myUsername/
carpeta y uséentonces corrí
y el problema se resolvió de esta manera.
Nota: Para acceder a su repositorio,
git
agregue su contraseña de git cuando creessh
claves conssh-keygen -t rsa -C "your git email here"
.fuente
Use el parámetro -A cuando se conecte al servidor, por ejemplo:
de la página del manual:
fuente
La solución básica para ejecutar
ssh-agent
se responde en muchas respuestas. Sin embargo, si se ejecutassh-agent
muchas veces (por cada terminal abierto o por inicio de sesión remoto) creará muchas copias que sessh-agent
ejecutarán en la memoria. Las secuencias de comandos que se sugieren para evitar ese problema son largas y necesitan escribir y / o copiar archivos separados o necesitan escribir demasiadas cadenas en~/.profile
o~/.schrc
. Permítanme sugerir una solución simple de dos cadenas:Para sh , bash , etc.
Para csh , tcsh , etc.
Que hay aquí:
ssh-agent
por nombre y por usuario actualssh-agent
y ejecútelossh-agent
si nossh-agent
se encuentra el proceso de usuario actualNo es necesario proteger el script de shell creado
~/.ssh-agent.tcsh
o el~/.ssh-agent.sh
acceso de otros usuarios porque: la comunicación inicialssh-agent
se procesa a través de un socket protegido que no es accesible para otros usuarios, y en segundo lugar, otros usuarios pueden encontrar elssh-agent
socket simple mediante archivos de enumeración en el/tmp/
directorio. En cuanto al acceso alssh-agent
proceso, son las mismas cosas.fuente
Intenta lo siguiente:
fuente
Lea la respuesta de @ cupcake para obtener explicaciones. Aquí solo trato de automatizar la solución.
Si usa el terminal Cygwin con BASH, agregue lo siguiente al archivo $ HOME / .bashrc. Esto solo inicia ssh-agent una vez en el primer terminal Bash y agrega las claves a ssh-agent. (No estoy seguro si esto es necesario en Linux)
NO OLVIDE agregar sus claves correctas en el comando "ssh-add".
fuente
Tuve este problema, cuando comencé ssh-agent, cuando ya se estaba ejecutando. Se confunde Para ver si este es el caso, use
para ver si esto es lo mismo que pensabas que debería ser. En mi caso, fue diferente al que acabo de comenzar.
Para verificar si tiene más de un agente ssh ejecutándose, puede revisar:
fuente
eval $(ssh-agent)
se supone que crea un nuevo agente con un PID diferente cada vez, aunque podría estar equivocado.Tuve un problema similar cuando estaba tratando de hacer que esto funcione en Windows para conectarse a stash a través de ssh
Aquí está la solución que funcionó para mí.
Resulta que estaba ejecutando Pageant ssh agent en mi cuadro de Windows; verificaría lo que está ejecutando. Sospecho que es un concurso, ya que viene por defecto con Putty y winScp
Ssh-add no funciona desde la línea de comandos con este tipo de agente
Debe agregar la clave privada a través de la ventana de la interfaz de usuario del concurso, que puede obtener haciendo doble clic en el icono del concurso en la barra de tareas (una vez que se inicia).
Antes de agregar la clave al concurso, debe convertirla al formato PPK. Las instrucciones completas están disponibles aquí Cómo convertir la clave SSH al formato ppk
Eso es. Una vez que cargué mi clave para guardar, pude usar SourceTree para crear un repositorio local y clonar el control remoto.
Espero que esto ayude...
fuente
Resolví el error forzando la detención (eliminación) de los procesos de git (agente ssh), luego desinstalando Git y luego instalando Git nuevamente.
fuente
Usando Git Bash en Win8.1E, mi resolución fue la siguiente:
fuente
/dev/null
? Su respuesta básicamente hace exactamente lo mismo que esta .~/.ssh/id_rsa
es la clave predeterminada, por lo que no debería tener que especificarssh-add ~/.ssh/id_rsa
, solossh-add
debería funcionar.Si está utilizando Putty, quizás necesite configurar la opción "Conexión / SSH / Auth / Permitir reenvío de agente" a "verdadero".
fuente
Esto funcionó para mí.
fuente
Para bash integrado en Windows 10, agregué esto a .bash_profile:
fuente
$(ssh-agent -s)
para configurar el entorno del agente.