Eu tenho tentado ssh-add
trabalhar em um RaspberryPi executando o Raspbian.
Eu posso começar ssh-agent
, quando o faço, fornece 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 correr ps aux | grep ssh
, posso ver que está correndo.
Em seguida, tento executar ssh-add
para adicionar minha senha de chave e obtenho o seguinte:
Could not open a connection to your authentication agent.
Alguma ideia?
command-line
ssh
ssh-agent
Daniel Groves
fonte
fonte
eval $(ssh-agent)
Respostas:
Seu shell deve avaliar esse código de shell produzido por
ssh-agent
. Execute isso:Ou se você já iniciou o ssh-agent, copie e cole no prompt do shell (assumindo que você esteja executando um shell semelhante ao Bourne).
ssh
Os comandos precisam saber como conversar comssh-agent
eles, eles sabem disso pelaSSH_AUTH_SOCK
variável de ambiente.fonte
ssh-agent bash
faz), mas não pode atualizar a memória de um processo separado executando um comando externo (seu shell já está em execução).Tente este:
fonte
ssh-agent /usr/bin/fish
./usr/local/bin/fish
(alternativamente/usr/ports/shells/fish
). Agradeça aowhereis
comando por me ajudar a descobrir isso.Esta questão também foi muito bem abordada no Stackoverflow .
fonte
`...`
. Sem eles, o operador split + glob é chamado na saída.Se você usar o csh como um shell ( PI do FreeBSD ), isso poderá funcionar:
Em seguida, você só precisa fazer algo como:
fonte
Você também pode usar a seguinte sintaxe:
fonte
ssh-agent sh -c "ssh-add -l"
, vai dizer que você não tem identidades.ssh-agent sh -c "ssh-add && ssh-add -l"
imprimirá sua identidade.Tente o seguinte: vá para
C:\$Installation_Folder$\Git\cmd
e execute:Ele abrirá um comando cmd e será executado da
ssh-agent
maneira certa.ssh-add ~/.ssh/id_rsa
deve então funcionar.fonte
Isso foi confuso e tem 2 possíveis boas respostas, dependendo se o usuário está tentando adicionar uma chave ssh no Linux ou no Windows (como eu sou). Provavelmente isso não responde ao OP, mas é uma expansão para o git-bash. Eu executo o Windows e o Ubuntu para desenvolvimento, e minha instalação do git é um pouco diferente em cada uma.
.. foi uma boa resposta do Windows, mas falhou ao especificar que você deveria acessar o Windows Explorer para encontrar a pasta de instalação do Git e executar o shell do Windows aberto após a conclusão da etapa 1.
"vá para C: \ $ Installation_Folder $ \ Git \ cmd "
Etapa 2: você só precisa clicar duas vezes
Na etapa 3, você volta ao git-bash ou ao emulador de terminal * nix em execução e executa o ssh-add. Se você usou o nome padrão para a chave pública ssh, não precisa adicionar o nome, pois o ssh-add usa isso automaticamente.
fonte
Existem algumas maneiras se você deseja usar uma identidade com o sudo, por exemplo
sudo npm install
.Longo caminho , mas também oferece acesso root, para que você não precise usar
sudo
muito.sudo ssh-agent bash
Isso pedirá sua senha e depois será executado
ssh-agent
com os privilégios do superusuário,cd /home/user/.ssh
De lá você pode correr
Maneira curta , apenas seu usuário (a menos que você queira sudo muito)
fonte
export
eeval
funciona tão bem quanto o root, desde que o shell de login do root seja semelhante ao Bourne. Se o shell do root for csh ou tcsh, use #eval `ssh-agent -c`
root
acesso ao seu ssh-agente fazendosudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install...
eval "$(ssh-agent)"
no prompt de um shell bash executando como root funcionará. Obviamente, você precisará executar assh
partir desse shell ou de seu descendente para que eles herdem a var env SSH_AUTH_SOCK.eval "$(sudo ssh-agent)"; sudo ssh...
não funcionará porque,sudo
por padrão, não passa o SSH_AUTH_SOCK env var.eval "$(ssh-agent)"
ficar olhando mais tarde para ver se há algum tipo de erro de configuração. Embora a maneira atual que forneço a este guia permita controle livre sobre o usuário que você deseja ser, já que você já é root, e pode acessar qualquer usuário id_rsa que esteja no servidor. Então, uma vez que eu funcione adequadamente, edite minha resposta.