ssh-add reclama: não foi possível abrir uma conexão com seu agente de autenticação

149

Estou tentando obter ssh-add trabalhando em um RaspberryPi executando o Raspbian.

Eu posso começar a ssh-agent , quando eu faço isso, dá a seguinte saída no terminal:

SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2807; export SSH_AGENT_PID;
echo Agent pid 2807;

Se eu executar ps aux | grep ssh , posso ver que está sendo executado.

Em seguida, tento executar ssh-add para adicionar minha frase-senha principal e obtenho o seguinte:

Could not open a connection to your authentication agent.

Alguma idéia?

    
por Daniel Groves 22.09.2012 / 17:22

8 respostas

201

Seu shell serve para avaliar a saída do código shell por ssh-agent . Execute isso em vez disso:

eval "$(ssh-agent)"

Ou se você já iniciou o ssh-agent, copie e cole no prompt do shell (supondo que esteja executando um shell parecido com o Bourne).

Os comandos

ssh precisam saber como falar com o ssh-agent , eles sabem disso da variável de ambiente SSH_AUTH_SOCK .

    
por 22.09.2012 / 18:26
24

Tente este:

$ ssh-agent /bin/sh
$ ssh-add $yourkey
    
por 07.10.2013 / 00:12
12

Esta questão também foi muito bem abordada no Stackoverflow .

eval 'ssh-agent -s'

ssh-add
    
por 31.01.2015 / 00:15
6

Se estiver usando csh como shell ( FreeBSD PI ) isso pode funcionar:

eval 'ssh-agent -c'

em seguida, você só precisa fazer algo como:

ssh-add ~/.ssh/id_rsa
    
por 10.01.2014 / 13:56
1

Você também pode usar a seguinte sintaxe:

ssh-agent sh -c 'ssh-add && echo Do some stuff here.'
    
por 26.03.2015 / 22:24
1

Tente isto: vá para C:\$Installation_Folder$\Git\cmd e execute:

start-ssh-agent 

Ele abrirá um comando cmd e executará o ssh-agent do jeito certo.

ssh-add ~/.ssh/id_rsa deve então funcionar.

    
por 14.06.2015 / 01:59
1

Isso foi confuso e tem duas possíveis boas respostas, dependendo se o usuário está tentando adicionar uma chave ssh em um Linux ou no Windows (como eu sou). Isso provavelmente não responde ao OP, mas é uma expansão do git-bash. Eu corro tanto o Windows quanto o Ubuntu para desenvolvimento, e minha instalação do git é um pouco diferente em cada um.

Try this: go to C:\$Installation_Folder$\Git\cmd and execute:

start-ssh-agent It will open a cmd command and run the ssh-agent the right way.

.. foi uma boa resposta do Windows, mas falhou ao especificar que era esperado que você passasse pelo Windows Explorer para localizar a pasta de instalação do Git e executasse o shell do Windows que seria aberto após a conclusão da etapa 1.
"vá para C: \ $ Installation_Folder $ \ Git \ cmd"

Passo 2: basta clicar duas vezes em

start-ssh-agent

No passo 3, você volta para o git-bash ou o emulador de terminal * nix que está executando e executa o ssh-add. Se você usou o nome padrão para a chave pública ssh, você não precisa adicionar o nome, já que o ssh-add usa isso automaticamente.

    
por 28.10.2015 / 11:56
1

Existem algumas maneiras de usar uma identidade com sudo, por exemplo. sudo npm install .

Longo caminho , mas também oferece acesso root para que você não precise usar muito sudo .

  1. Executar
    sudo ssh-agent bash
    Isso solicitará sua senha e depois executará ssh-agent com os privilégios do superusuário,
  2. Navegue até a pasta .ssh dos seus usuários em cd /home/user/.ssh
  3. De lá você pode correr

    ssh-add id_rsa
    npm install git+ssh://git@YOUR-PROJECT-URL -g && npm link PROJECT-NAME
    

Caminho curto , somente seu usuário (a menos que você queira fazer muito sudo)

eval "$(ssh-agent)"
ssh-add
sudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install git+ssh://git@PROJECT-URL -g && sudo npm link PROJECT-NAME
    
por 08.12.2015 / 18:02