véase sesión servidor retorno registro rechazado pero para más las estado escucha enviado detalles conexión conexiones como comando autenticación ssh ssh-agent

ssh - sesión - No se pudo abrir una conexión a su agente de autenticación



registro de autenticación véase registro de sesión para más detalles): (30)

Nota: esta es una respuesta a esta pregunta , que se ha fusionado con esta. Esa pregunta fue para Windows 7, lo que significa que mi respuesta fue para Cygwin / MSYS / MSYS2. Este parece ser para algunos Unix, donde no esperaría que el agente de SSH tuviera que ser administrado de esta manera.

Esto ejecutará el agente SSH y se autentificará 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, incluyendo ssh en sí y scp. Simplemente agregue esto a /etc/profile.d/ssh-helper.sh :

ssh-auth() { # Start the SSH agent only if not running [[ -z $(ps | grep ssh-agent) ]] && echo $(ssh-agent) > /tmp/ssh-agent-data.sh # Identify the running SSH agent [[ -z $SSH_AGENT_PID ]] && source /tmp/ssh-agent-data.sh > /dev/null # Authenticate (change key path or make a symlink if needed) [[ -z $(ssh-add -l | grep "/home/$(whoami)/.ssh/id_rsa") ]] && ssh-add } # You can repeat this for other commands using SSH git() { ssh-auth; command git "$@"; }

Estoy corriendo en 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 obtengo el siguiente error:

$ ssh-add ~/.ssh/id_rsa.pub Could not open a connection to your authentication agent.


No se pudo abrir una conexión a su agente de autenticación

Para resolver este error:

golpetazo:

$ eval `ssh-agent -s`

tcsh:

$ eval `ssh-agent -c`

Luego usa ssh-add como lo harías normalmente.

Buen dato:

Siempre olvidé qué escribir para los comandos de ssh-agent anteriores, así que creé un alias en mi archivo .bashrc como este:

alias ssh-agent-cyg=''eval `ssh-agent -s`''

Ahora, en lugar de usar ssh-agent , puedo usar ssh-agent-cyg

P.ej

$ ssh-agent-cyg SSH_AUTH_SOCK=/tmp/ssh-n16KsxjuTMiM/agent.32394; export SSH_AUTH_SOCK; SSH_AGENT_PID=32395; export SSH_AGENT_PID; echo Agent pid 32395; $ ssh-add ~/.ssh/my_pk

Fuente original de la solución:

http://cygwin.com/ml/cygwin/2011-10/msg00313.html


¿Comenzaste ssh-agent ?

Es posible que deba iniciar ssh-agent antes de ejecutar el comando ssh-add :

eval `ssh-agent -s` ssh-add

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 .

Vea las siguientes respuestas:

  1. ssh-add se queja: no se pudo abrir una conexión con su agente de autenticación
  2. Git push requiere nombre de usuario y contraseña (contiene instrucciones detalladas sobre cómo usar ssh-agent)
  3. ¿Cómo ejecutar el agente de autenticación (git / ssh)? .
  4. No se pudo abrir una conexión a su agente de autenticación

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 eval lugar de ssh-agent ?

Para saber por qué, vea la respuesta de Robin Green .

Claves públicas vs privadas

Además, siempre que uso ssh-add , siempre le agrego claves privadas. El archivo ~/.ssh/id_rsa.pub parece una clave pública, no estoy seguro de si funcionará. ¿Tienes un archivo ~/.ssh/id_rsa ? Si lo abres en un editor de texto, ¿dice que es una clave privada?


MsysGit o Cygwin

Si está utilizando Msysgit o Cygwin, puede encontrar un buen tutorial en SSH-Agent en msysgit y cygwin y bash :

  1. Agregue un archivo llamado .bashrc a su carpeta de inicio.

  2. Abre el archivo y pégalo en:

    #!/bin/bash eval `ssh-agent -s` ssh-add

  3. Esto supone que su clave está en la ubicación ~/.ssh/id_rsa . Si no lo está, incluya una ruta completa después del comando ssh-add .

  4. Agregar o crear el archivo ~/.ssh/config con el contenido

    ForwardAgent yes

    En el tutorial original, el ForwardAgent es Yes , pero es un error tipográfico. Usa todo en minúsculas o obtendrás errores.

  5. Reinicie Msysgit. Le pedirá que ingrese su 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 ssh-agent cada vez que abra un terminal, revise Keychain . Estoy en una Mac ahora, 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 para Mac es agregar su clave al llavero de Mac OS:

ssh-add -K ~/.ssh/id_rsa

Simple como eso.


Acabo de hacer funcionar esto. Abra su archivo ~/.ssh/config .

Adjunte lo siguiente-

Host github.com IdentityFile ~/.ssh/github_rsa

La página que me dio la sugerencia de Configurar SSH para Git dijo que la sangría de un solo espacio es importante ... aunque tenía una configuración de Heroku aquí que no tenía ese espacio y funciona correctamente.


Déjame ofrecerte otra solución. Si acaba de instalar Git 1.8.2.2 o aproximadamente, y desea habilitar SSH, siga las instrucciones bien escritas.

Todo a través del paso 5.6 donde puede encontrar un pequeño obstáculo. Si ya se está ejecutando un agente SSH, podría aparecer el siguiente mensaje de error cuando reinicie bash

Could not open a connection to your authentication agent

Si lo hace, use el siguiente comando para ver si se está ejecutando más de un proceso ssh-agent

ps aux | grep ssh

Si ve más de un servicio de ssh-agent, deberá eliminar todos estos procesos. Use el comando kill como se indica a continuación (el PID será único en su computadora)

kill <PID>

Ejemplo:

kill 1074

Una vez que haya eliminado todos los procesos de ssh-agent, ejecute px aux | Vuelva a ejecutar el comando grep ssh para asegurarse de que se hayan ido, luego reinicie Bash.

Voila, ahora debería obtener algo como esto:

Initializing new SSH agent... succeeded Enter passphrase for /c/Users/username/.ssh/id_rsa:

Ahora puede continuar en el paso 5.7 y más allá.


El siguiente comando funcionó para mí. Estoy usando CentOS.

exec ssh-agent bash


En Windows 10 intenté todas las respuestas enumeradas aquí, pero ninguna de ellas parecía funcionar. De hecho dan una pista. Para resolver un problema simplemente necesitas 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 configuren con la ruta actual del archivo sock de ssh-agent y el número de pedido.

ssh-agent -s > temp.txt

Esto guardará la salida de ssh-agent en el archivo. El contenido del archivo de texto será algo como esto:

SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764; export SSH_AUTH_SOCK; SSH_AGENT_PID=3044; export SSH_AGENT_PID; echo Agent pid 3044;

Copie algo como "/tmp/ssh-kjmxRb2764/agent.2764" desde el archivo de texto y ejecute el siguiente comando directamente en la consola:

set SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764

Copie algo como "3044" del archivo de texto y ejecute el siguiente comando directamente en la consola:

set SSH_AGENT_PID=3044

Ahora, cuando las variables de entorno (SSH_AUTH_SOCK y SSH_AGENT_PID) están configuradas para la sesión de consola actual, ejecute el comando ssh-add y no volverá a fallar la conexión del agente ssh.


En lugar de usar $ ssh-agent -s , usé $ eval `ssh-agent -s` para resolver este problema.

Esto es lo que hice paso a paso (paso 2 en adelante en GitBash):

  1. Limpié mi carpeta .ssh en C:/user/<username>/.ssh/
  2. Generé una nueva clave SSH
    $ ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. Compruebe si algún ID de proceso (agente ssh) ya se está ejecutando.
    $ ps aux | grep ssh
  4. (Opcional) Si encuentra alguno en el paso 3, elimine esos
    $ kill <pids>
  5. Comenzó el agente ssh
    $ eval `ssh-agent -s`
  6. Se agregó la clave ssh generada en el paso 2 al agente ssh
    $ ssh-add ~/.ssh/id_rsa

En mi caso, mi cortafuegos Comodo había colocado en el buzón de arena al agente ssh. Una vez que deshabilité el sandboxing pude clonar el repositorio.

Para su información, estoy usando el firewall de Comodo en Windows 7.


Esto worked para mí.

En la ventana de CMD, escriba el siguiente comando:

cd path-to-Git/bin # (for example,cd C:/Program Files/Git/bin) bash exec ssh-agent bash ssh-add path/to/.ssh/id_rsa


Incluso estaba recibiendo "No se pudo abrir una conexión con su agente de autenticación". al ejecutar el comando mientras se genera y agrega la clave SSH: ssh-add ~/.ssh/id_rsa . Lo resolví deteniendo las múltiples instancias de ssh-agent ejecutaban en mi máquina y luego desinstalé el Git del panel de control en mi máquina con Windows y luego volví a instalar Git y las cosas estaban funcionando ahora.


Intenta lo siguiente:

ssh-agent sh -c ''ssh-add && git push heroku master''


Intenta los siguientes pasos:

1) Abre Git Bash y ejecuta: cd ~/.ssh

2) Intente ejecutar el agente: eval $(ssh-agent)

3) Ahora mismo, puede ejecutar el siguiente comando: ssh-add -l


La solución básica para ejecutar ssh-agent se responde con muchas respuestas. Sin embargo, ejecutar ssh-agent muchas veces (por cada terminal abierto o por inicio de sesión remoto) creará muchas copias o ssh-agent ejecutándose en la memoria. Los scripts que se sugieren para evitar ese problema son largos y necesitan escribir y / o copiar archivos separados o necesitan escribir demasiadas cadenas en ~/.profile o ~/.schrc . Déjame sugerir una solución simple de dos cuerdas:

Para sh , bash , etc:

# ~/.profile if ! pgrep -q -U `whoami` -x ''ssh-agent''; then ssh-agent -s > ~/.ssh-agent.sh; fi . ~/.ssh-agent.sh

Para csh , tcsh , etc:

# ~/.schrc sh -c ''if ! pgrep -q -U `whoami` -x ''ssh-agent''; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'' eval `cat ~/.ssh-agent.tcsh`

Que hay aquí:

  • buscar el proceso ssh-agent por nombre y por usuario actual
  • cree el archivo de script de shell adecuado llamando a ssh-agent y ejecute ssh-agent si no se encuentra el proceso actual de usuario ssh-agent
  • evaluar el script de shell creado que configura el entorno apropiado

No es necesario proteger el script de shell creado ~/.ssh-agent.tcsh o ~/.ssh-agent.sh del acceso de otros usuarios porque: la primera comunicación con ssh-agent se procesa a través de un socket protegido al que no se puede acceder otros usuarios, y en segundo lugar otros usuarios pueden encontrar ssh-agent socket simple por archivos de enumeración en el directorio /tmp/ . En cuanto al acceso al proceso ssh-agent son las mismas cosas.


Lea la respuesta de @cupcake para explicaciones. Aquí solo intento automatizar la correcció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 de Bash y agrega las claves a ssh-agent. (No estoy seguro si esto es requerido en Linux)

########################### # start ssh-agent for # ssh authentication with github.com ########################### SSH_AUTH_SOCK_FILE=/tmp/SSH_AUTH_SOCK.sh if [ ! -e $SSH_AUTH_SOCK_FILE ]; then # need to find SSH_AUTH_SOCK again. # restarting is an easy option pkill ssh-agent fi # check if already running SSH_AGENT_PID=`pgrep ssh-agent` if [ "x$SSH_AGENT_PID" == "x" ]; then # echo "not running. starting" eval $(ssh-agent -s) > /dev/null rm -f $SSH_AUTH_SOCK_FILE echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK" > $SSH_AUTH_SOCK_FILE ssh-add $HOME/.ssh/github.com_id_rsa 2>&1 > /dev/null #else # echo "already running" fi source $SSH_AUTH_SOCK_FILE

NO OLVIDE agregar sus claves correctas en el comando "ssh-add".


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 saca esas variables al shell.

Necesitas:

eval `ssh-agent`

y luego hacer ssh-add. Consulte No se pudo abrir una conexión con su agente de autenticación .


Para amplificar en la respuesta de n3o para Windows 7 ...

Mi problema fue que algunas variables de entorno necesarias no se configuraron, y n3o es correcto, ssh-agent le dice cómo configurar esas variables de entorno, pero en realidad no las establece.

Ya que Windows no te permite hacer "eval", esto es lo que debes hacer en su lugar:

Redirige la salida de ssh-agent a un archivo por lotes con

chgrp Users id_rsa

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 principio de la línea. - Eliminar el primer punto y coma y todo lo que sigue.

Ahora borra la tercera línea. Tu temp.bat debería verse algo como esto:

chmod 600 id_rsa

Ejecutar temp.bat. Esto establecerá las variables de entorno que son necesarias para que ssh-add funcione.


Para bash integrado en Windows 10, agregué esto a .bash_profile:

if [ -z $SSH_AUTH_SOCK ]; then if [ -r ~/.ssh/env ]; then source ~/.ssh/env if [ `ps -p $SSH_AGENT_PID | wc -l` = 1 ]; then rm ~/.ssh/env unset SSH_AUTH_SOCK fi fi fi if [ -z $SSH_AUTH_SOCK ]; then ssh-agent -s | sed ''s/^echo/#echo/''> ~/.ssh/env chmod 600 ~/.ssh/env source ~/.ssh/env > /dev/null 2>&1 fi


Probé las otras soluciones en vano. Hice más investigación y encontré que el siguiente comando funcionó. Estoy usando Windows 7 y Git Bash .

eval $(ssh-agent)

Más información en: https://coderwall.com/p/rdi_wq


Resolví el error forzando la detención (cancelada) de los procesos de git (agente ssh), luego desinstalé Git y luego volví a instalar Git.


Si está utilizando Putty, quizás deba configurar la opción "Conexión / SSH / Autent / Permitir reenvío de agente" en "verdadero".


Si sigues estas instrucciones, tu problema se resolverá.

Si estás en una máquina Mac o Linux, escribe:

eval "$(ssh-agent -s)"

Si estás en una máquina con Windows, escribe:

ssh-agent -s


También puedes ver tu url remoto. usa git @ github ... en lugar de https: // proptocol

vea https://.com/a/33928364/551811


Tuve este problema, cuando comencé ssh-agent, cuando ya se estaba ejecutando. Se confunde. Para ver si este es el caso, use

eval $(ssh-agent)

para ver si esto es lo mismo que pensaste que debería ser. En mi caso, fue diferente al que acabo de empezar.

Para verificar si tiene más de un agente ssh en ejecución, puede revisar:

ps -ef | grep ssh


Tuve un problema similar cuando intentaba que esto funcionara en Windows para conectarme al escondite a través de ssh

Aquí está la solución que funcionó para mí.

  1. Resulta que estaba ejecutando el agente de Pageant ssh en mi caja de Windows - comprobaría lo que está ejecutando. Sospecho que es Pageant ya que viene por defecto con Putty y winScp

  2. El ssh-add no funciona desde la línea de comandos con este tipo de agente

  3. Debe agregar la clave privada a través de la ventana de 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 haya iniciado).

  4. Antes de agregar la clave a Pageant, debe convertirla al formato PPK. Las instrucciones completas están disponibles aquí. Cómo convertir la clave SSH al formato ppk

  5. Eso es. Una vez que cargué mi clave para esconder, pude usar SourceTree para crear un repositorio local y clonar el control remoto.

Espero que esto ayude...


Una cosa que encontré fue que eval no me funcionó con Cygwin, lo que funcionó para mí fue ssh-agent ssh-add id_rsa .

Después de eso encontré un problema que mi clave privada era demasiado abierta, la solución que encontré para eso (desde here ):

ssh-agent ssh-add id_rsa

tanto como

ssh-agent > temp.bat

Finalmente pude usar:

set SSH_AUTH_SOCK=/tmp/ssh-EorQv10636/agent.10636 set SSH_AGENT_PID=8608


Usando Git Bash en Win8.1E, mi resolución fue la siguiente:

eval $(ssh-agent) > /dev/null ssh-add ~/.ssh/id_rsa


Use el parámetro -A cuando se conecte al servidor, ejemplo:

ssh -A root@myhost

de la página del manual:

-A Enables forwarding of the authentication agent connection. This can also be specified on a per-host basis in a configuration file. Agent forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the agent''s UNIX-domain socket) can access the local agent through the forwarded connection. An attacker cannot obtain key material from the agent, however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent.


ssh-add y ssh (suponiendo que está utilizando las implementaciones de openssh) requieren una variable de entorno para saber cómo hablar con el agente ssh. Si inició el agente en una ventana de indicador de comando diferente a la que está usando ahora, o si lo inició incorrectamente, ni ssh-add ni ssh verán esa variable de entorno establecida (porque la variable de entorno se establece localmente en el comando aviso está establecido en).

No dice qué versión de ssh está usando, pero si está usando cygwin, puede usar esta receta del Agente SSH en Cygwin :

# Add to your Bash config file SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT $SSHAGENTARGS` trap "kill $SSH_AGENT_PID" 0 fi

Esto iniciará automáticamente un agente para cada nueva ventana de solicitud de comando que abra (lo que es subóptimo si abre múltiples solicitudes de comando en una sesión, pero al menos debería funcionar).