your open not mac generate could ssh ssh-agent

ssh - open - No se pudo abrir una conexión con su agente de autenticación



ssh-add (30)

Me estoy encontrando 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.

Traté de agregar las claves y me aparece este error a continuación:

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


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

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

  1. Limpié mi carpeta .ssh en C: / user / .ssh /

  2. Generado una nueva clave SSH
    $ ssh-keygen -t rsa -b 4096 -C "[email protected]"

  3. Verifique si ya se está ejecutando alguna identificación de proceso (agente ssh).
    $ ps aux | grep ssh

  4. (Opcional) Si encuentra alguno en el paso 3, elimínelos
    $ 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


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 SSH necesitara ser administrado así.

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 en sí y scp. Solo 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 "$@"; }


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

Para resolver este error:

intento:

$ eval `ssh-agent -s`

tcsh:

$ eval `ssh-agent -c`

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

Buen dato:

Siempre me olvidé de qué escribir para los comandos 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 corrección:

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


¿Comenzó 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 utilizar 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 (git / ssh) agente de autenticación? .
  4. No se pudo abrir una conexión con su agente de autenticación

Para iniciar ssh-agent automáticamente y permitir que una sola instancia funcione en varias ventanas de la consola, consulte Iniciar ssh-agent al iniciar sesión .

¿Por qué tenemos que usar eval lugar de simplemente ssh-agent ?

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

Claves públicas vs privadas

Además, cada vez 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 eso funcionará. ¿Tienes un archivo ~/.ssh/id_rsa ? Si lo abre en un editor de texto, ¿dice que es una clave privada?


MsysGit o Cygwin

Si está usando 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. Abra el archivo y pegue:

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

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

  4. Agregar o crear archivo ~/.ssh/config con los contenidos

    ForwardAgent yes

    En el tutorial original, el ForwardAgent es Yes , pero es un error tipográfico. Use todas las minúsculas o obtendrá errores.

  5. Reinicia Msysgit. Le pedirá que ingrese su frase de contraseña una vez, y eso es todo (hasta que finalice la sesión, o se mata a su agente de ssh).

Mac OS X

Si no desea iniciar un nuevo ssh-agent 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 llave al llavero Mac OS:

ssh-add -K ~/.ssh/id_rsa

Simple como eso.


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

Agregue lo siguiente-

Host github.com IdentityFile ~/.ssh/github_rsa

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


Amplificar en la respuesta de n3o para Windows 7 ...

Mi problema era, de hecho, que algunas variables de entorno requeridas no estaban establecidas, y n3o es correcto que ssh-agent te dice cómo establecer esas variables de entorno, pero en realidad no las establece.

Como Windows no le permite hacer "eval", esto es lo que debe hacer:

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

ssh-agent > temp.bat

Ahora usa un editor de texto como el Bloc de notas para editar temp.bat. Para cada una de las dos primeras líneas: - Inserta la palabra "establecer" 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. Tu temp.bat debería verse más o menos así:

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

Ejecute temp.bat. Esto configurará las variables de entorno necesarias para que ssh-add funcione.


Déjame ofrecerte otra solución. Si acaba de instalar Git 1.8.2.2 o menos, 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 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 de ssh-agent

ps aux | grep ssh

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)

kill <PID>

Ejemplo:

kill 1074

Después de haber eliminado todos los procesos de ssh-agent, ejecute px aux | grep ssh comando nuevamente para asegurarse de que se hayan ido, luego reinicie Bash.

Voila, ahora deberías 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 probé todas las respuestas que figuran 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 establecer las variables de entorno SSH_AUTH_SOCK y SSH_AGENT_PID con la ruta actual del archivo sock de ssh-agent y el número pid.

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 su comando ssh-add y no volverá a fallar para conectar el agente ssh.


En mi caso, mi firewall de Comodo había puesto a prueba el agente de ssh. Una vez que desactivé el sandboxing, pude clonar el repositorio.

FYI, estoy usando el firewall de Comodo en Windows 7.


Enfrenté el mismo problema para Linux, y esto es lo que hice:

Básicamente, el comando ssh-agent inicia el agente, pero realmente no establece las variables de entorno para que se ejecute. Simplemente emite 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 .


Esto funcionó 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 obteniendo "No se pudo abrir una conexión con su agente de autenticación". al ejecutar el comando al generar y agregar la clave SSH: ssh-add ~/.ssh/id_rsa . Lo resolví deteniendo las múltiples instancias de ssh-agent ejecutan en mi máquina y luego desinstalé el Git del panel de control en mi máquina de Windows y luego volví a instalar Git y las cosas estaban funcionando ahora.


Intente con los siguientes pasos:

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

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

3) En este momento, puede ejecutar el siguiente comando: ssh-add -l


La solución básica para ejecutar ssh-agent se responde en muchas respuestas. Sin embargo, ejecutar ssh-agent muchas veces (por cada terminal abierto o por inicio de sesión remoto) creará muchas copias de 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 . Permítanme sugerir una solución simple de dos cadenas:

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 un archivo de script de shell apropiado llamando a ssh-agent y ejecute ssh-agent si no se encuentra un proceso de usuario actual de ssh-agent
  • evaluar el guión de shell creado que configura el entorno apropiado

No es necesario proteger el script de shell creado ~/.ssh-agent.tcsh o ~/.ssh-agent.sh de otro acceso de 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 el segundo, otros usuarios pueden encontrar el socket ssh-agent simple mediante los archivos de enumeración en el directorio /tmp/ . En cuanto al acceso al proceso de ssh-agent , es lo mismo.


Lee la respuesta de @bigcake para obtener explicaciones. Aquí solo intento 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 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".


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 sin éxito. Investigué más y descubrí que el siguiente comando funcionaba. Estoy usando Windows 7 y Git Bash .

eval $(ssh-agent)

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


Pruebe lo siguiente:

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


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


Si está usando Putty, quizás deba establecer la opción "Conexión / SSH / Auth / Permitir reenvío de agente" a "verdadero".


Si sigues estas instrucciones, tu problema estaría resuelto.

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

eval "$(ssh-agent -s)"

Si está en una máquina con Windows, escriba:

ssh-agent -s


También verifique su URL remota. use git @ github ... en lugar de https: // proptocol

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


Tuve este problema cuando comencé ssh-agent, cuando ya estaba en ejecución. Se confunde Para ver si este es el caso, use

eval $(ssh-agent)

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

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

ps -ef | grep ssh


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

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

  1. Resulta que estaba ejecutando el agente de shan de Pageant en mi caja de Windows. Verificaría qué estás ejecutando. Sospecho que es un concurso 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 al configurar el icono del concurso en la barra de tareas (una vez que se haya iniciado).

  4. Antes de agregar la clave al concurso, debe convertirlo 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 esconderme, pude usar SourceTree para crear un repositorio local y clonar el control remoto.

Espero que esto ayude...


Una cosa que encontré fue que la eval no funcionó para mí usando Cygwin, lo que funcionó para mí fue ssh-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 logré encontrar para eso (desde aquí ):

chgrp Users id_rsa

tanto como

chmod 600 id_rsa

finalmente pude usar:

ssh-agent ssh-add id_rsa


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 conecta al servidor, ejemplo:

ssh -A root@myhost

de la página man:

-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 símbolo del sistema diferente a la que está utilizando ahora, o si lo inició de manera incorrecta, ni ssh-add ni ssh verán esa variable de entorno establecida (porque la variable de entorno se establece localmente en el comando indica que está configurado).

No dices qué versión de ssh estás usando, pero si usas cygwin, puedes usar esta receta de SSH Agent 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á un agente automáticamente para cada nueva ventana de solicitud de comando que abra (que es subóptima si abre varias solicitudes de comando en una sesión, pero al menos debería funcionar).