Estou com este erro 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.
Tentei adicionar as chaves e recebo este erro abaixo:
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
$ ssh-agent /bin/sh
e$ ssh-add $yourkey
git config --list
para ver se você definiucredential.helper
- se você tiver, remova essa configuração, pois o auxiliar está sendo inútil.Respostas:
Você começou
ssh-agent
?Pode ser necessário iniciar
ssh-agent
antes de executar ossh-add
comando:Observe que isso iniciará o agente do msysgit Bash no Windows . Se você estiver usando um shell ou sistema operacional diferente, pode ser necessário usar uma variante do comando, como as listadas nas outras respostas .
Veja as seguintes respostas:
Para iniciar automaticamente o ssh-agent e permitir que uma única instância funcione em várias janelas do console, consulte Iniciar o ssh-agent no login .
Por que precisamos usar em
eval
vez de apenasssh-agent
?Para descobrir o porquê, consulte a resposta de Robin Green .
Chaves Públicas x Privadas
Além disso, sempre que uso
ssh-add
, sempre adiciono chaves privadas a ele. O arquivo~/.ssh/id_rsa.pub
parece uma chave pública, não tenho certeza se isso funcionará. Você tem um~/.ssh/id_rsa
arquivo? Se você o abrir em um editor de texto, ele diz que é uma chave privada?fonte
ssh-add
apenas descriptografa uma chave privada criptografada na máquina host, para que possa ser usada localmente ... nunca é enviada a ninguém . Suponho que apenas as chaves públicas sejam enviadas através de uma rede. Meu entendimento está incorreto?eval ssh-agent -s
funciona, masssh-agent
por si só não.SSH_AUTH_SOCK
IIRC). Se você apenas executarssh-agent
, o agente será iniciado, mas o SSH não fará ideia de onde encontrá-lo.Eu tentei as outras soluções sem sucesso. Fiz mais pesquisas e descobri que o seguinte comando funcionava. Estou usando o Windows 7 e o Git Bash .
Mais informações em: https://coderwall.com/p/rdi_wq
fonte
O comando a seguir funcionou para mim. Estou usando o CentOS.
fonte
ssh-add my.id_rsa
falharia comigo. Masexec ssh-agent zsh
deu um ambiente onde eu pudessh-add
sem nenhum problema. E eu estou dentro do meu recipiente janela de encaixe :)MsysGit ou Cygwin
Se você estiver usando o Msysgit ou o Cygwin, poderá encontrar um bom tutorial no SSH-Agent em msysgit, cygwin e bash :
Adicione um arquivo chamado
.bashrc
à sua pasta pessoal.Abra o arquivo e cole em:
Isso pressupõe que sua chave esteja no
~/.ssh/id_rsa
local convencional . Caso contrário, inclua um caminho completo após ossh-add
comando.Adicione ou crie um arquivo
~/.ssh/config
com o conteúdoNo tutorial original, o
ForwardAgent
parâmetro éYes
, mas é um erro de digitação. Use todas as letras minúsculas ou você receberá erros.Reinicie o Msysgit. Ele solicitará que você digite sua senha uma vez, e é isso (até que você termine a sessão ou seu agente ssh seja morto).
Mac OS X
Se você não deseja iniciar um novo ssh-agent toda vez que abrir um terminal, confira Chaveiro . Agora estou em um Mac, então usei o tutorial ssh-agent com zsh & keychain no Mac OS X para configurá-lo, mas tenho certeza de que uma pesquisa no Google terá muitas informações para o Windows.
Atualização : Uma solução melhor no Mac é adicionar sua chave ao Mac OS Keychain:
Simples assim.
fonte
eval `ssh-agent -s`
o processo não para quando eu saio do cygwin.ps -u $(whoami) | grep ssh-agent &> /dev/null || eval $(ssh-agent)
- caso contrário, um novo agente ssh é iniciado toda vez. Matou minha máquina de vez em quando quando o usuário tinha cronjobs.ForwardAgent yes
não é necessário e representa um risco de segurança não-teórico, se estiver definido para qualquer servidor não confiável. O acesso local ao seu agente-chave deve funcionar independentemente dessa configuração.Não foi possível abrir uma conexão com seu agente de autenticação
Para resolver este erro:
bater:
tcsh:
Em seguida, use
ssh-add
como faria normalmente.Dica quente:
Eu estava sempre esquecendo o que digitar para os comandos ssh-agent acima, então criei um alias no meu
.bashrc
arquivo assim:Agora, em vez de usar
ssh-agent
, eu posso usarssh-agent-cyg
Por exemplo
Fonte original de correção:
http://cygwin.com/ml/cygwin/2011-10/msg00313.html
fonte
eval
comando toda vez que executaria anteriormentessh-agent
. Eu uso um alias agora, veja a resposta atualizada sobre como faço isso.fatal: Could not read from remote repository.
.Eu enfrentei o mesmo problema no Linux, e aqui está o que eu fiz:
Basicamente, o comando ssh-agent inicia o agente, mas na verdade não define as variáveis de ambiente para execução. Apenas envia essas variáveis para o shell.
Você precisa:
e depois faça o ssh-add. Consulte Não foi possível abrir uma conexão com seu agente de autenticação .
fonte
O ssh-add e o ssh (supondo que você esteja usando as implementações openssh) requerem uma variável de ambiente para saber como conversar com o agente ssh. Se você iniciou o agente em uma janela de prompt de comando diferente da que está usando agora ou se iniciou incorretamente, nem o ssh-add nem o ssh verão a variável de ambiente definida (porque a variável de ambiente está definida localmente no comando prompt definido em).
Você não diz qual versão do ssh está usando, mas se estiver usando o cygwin, você pode usar esta receita do SSH Agent no Cygwin :
Isso iniciará um agente automaticamente para cada nova janela de prompt de comando que você abrir (que é abaixo do ideal se você abrir vários prompts de comando em uma sessão, mas pelo menos deve funcionar).
fonte
eval $(ssh-agent)
e posso usar o ssh sem senha para cada nova janela do terminal.Corre
Para obter mais detalhes, você pode pesquisar
ou correr
fonte
ssh-copy-id
no ubuntu. Não sei por que não consegui adicionar a chave sem usarssh-agent
para iniciar o bash.ssh-agent zsh; ssh-add
Tente os seguintes passos:
1) Abra o Git Bash e execute:
cd ~/.ssh
2) Tente executar o agente:
eval $(ssh-agent)
3) No momento, você pode executar o seguinte comando:
ssh-add -l
fonte
ps aux | grep ssh
eokill
comando em resposta de Rick para matar os agentes. Depois dissossh-add
funcionou sem a opção -l (o uso de -l deu um erro).eval 'ssh-agent'
como na resposta de Rick não funcionou, tive que usareval $(ssh-agent)
como na resposta de Chechoro aqui.$(ssh-agent)
é equivalente a,`ssh-agent`
mas mais legível.Em vez de usar
$ ssh-agent -s
, eu costumava$ eval `ssh-agent -s`
resolver esse problema.Aqui está o que eu executei passo a passo (passo 2 em diante no 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
fonte
ssh-agent -s
e adicionar uma chave antiga usando ssh-add ~ / .ssh / id_rsa. Se você gerar nova chave SSH, então você vai precisar atualizar essa chave em todos os seus serviços como github, bitbucket, etc.ssh-agent -s
" e "ssh-add ~ / .ssh / id_rsa" novamente.No Windows 10, tentei todas as respostas listadas aqui, mas nenhuma delas parecia funcionar. De fato, eles dão uma pista. Para resolver um problema, basta ter 3 comandos. A idéia desse problema é que o ssh-add precise que as variáveis de ambiente SSH_AUTH_SOCK e SSH_AGENT_PID sejam configuradas com o caminho atual do arquivo de meia de ssh-agent ssh e o número do pid.
Isso salvará a saída do ssh-agent no arquivo. O conteúdo do arquivo de texto será mais ou menos assim:
Copie algo como "/tmp/ssh-kjmxRb2764/agent.2764" do arquivo de texto e execute o seguinte comando diretamente no console:
Copie algo como "3044" do arquivo de texto e execute o seguinte comando diretamente no console:
Agora, quando as variáveis de ambiente (SSH_AUTH_SOCK e SSH_AGENT_PID) estiverem definidas para a sessão atual do console, execute o comando ssh-add e ele não falhará novamente ao conectar o agente ssh.
fonte
set
porexport
Uma coisa que me deparei foi que
eval
não funcionou para mim usando o Cygwin, o que funcionou para mim foissh-agent ssh-add id_rsa
.Depois disso, deparei-me com um problema que minha chave privada estava muito aberta, a solução que consegui encontrar para isso ( daqui ):
assim como
finalmente pude usar:
fonte
eval `ssh-agent`
, com as reticências`
ao redorssh-agent
, como mostrado na minha resposta ? Isso funcionou muito bem para mim em Cygwin. Você parece estar certo quessh-agent ssh-add
também funciona, pelo menos no msysgit Bash. No entanto, observe queid_rsa
é a chave padrão usada, portanto você não precisa especificá-lassh-agent ssh-add id_rsa
.Para ampliar a resposta da n3o para o Windows 7 ...
Meu problema é que algumas variáveis de ambiente necessárias não foram definidas e o n3o está correto, pois o ssh-agent diz como definir essas variáveis de ambiente, mas na verdade não as define.
Como o Windows não permite "avaliar", eis o que fazer:
Redirecione a saída do ssh-agent para um arquivo em lotes com
Agora use um editor de texto como o Bloco de Notas para editar temp.bat. Para cada uma das duas primeiras linhas: - Insira a palavra "conjunto" e um espaço no início da linha. - Exclua o primeiro ponto e vírgula e tudo o que se segue.
Agora exclua a terceira linha. Seu temp.bat deve se parecer com isso:
Execute temp.bat. Isso definirá as variáveis de ambiente necessárias para o funcionamento do ssh-add.
fonte
Could not open a connection to your authentication agent.
ao executar o ssh-add no Win10 PowerShell.Acabei de fazer isso funcionar. Abra seu
~/.ssh/config
arquivo.Anexe o seguinte-
A página que me deu a dica Configure SSH para Git disse que o recuo de espaço único é importante ... embora eu tenha uma configuração aqui do Heroku que não tenha esse espaço e funcione corretamente.
fonte
Se você seguir estas instruções, seu problema será resolvido.
Se você estiver em uma máquina Mac ou Linux, digite:
Se você estiver em uma máquina Windows, digite:
fonte
Deixe-me oferecer outra solução. Se você acabou de instalar o Git 1.8.2.2 ou próximo e deseja ativar o SSH, siga as instruções bem escritas .
Tudo até a Etapa 5.6, onde você pode encontrar um pequeno obstáculo. Se um agente SSH já estiver em execução, você poderá receber a seguinte mensagem de erro ao reiniciar o bash
Se o fizer, use o comando a seguir para ver se mais de um processo ssh-agent está em execução
Se você vir mais de um serviço ssh-agent, precisará matar todos esses processos. Use o comando kill da seguinte maneira (o PID será exclusivo no seu computador)
Exemplo:
Depois de remover todos os processos do ssh-agent, execute o px aux | comando grep ssh novamente para garantir que eles se foram e reinicie o Bash.
Agora você deve obter algo parecido com isto:
Agora você pode continuar na Etapa 5.7 e além.
fonte
Para usuários de janelas, descobri que o cmd
eval `ssh-agent -s`
não funcionava, mas o uso do git bash funcionou bemeval `ssh-agent -s`; ssh-add KEY_LOCATION
e garantir que o serviço Windows "OpenSSH Key Management" não estivesse desativadofonte
Isso executará o agente SSH e autenticará apenas a primeira vez que você precisar , nem sempre que abrir o terminal Bash. Pode ser usado para qualquer programa que use SSH em geral, incluindo ssh propriamente dito e scp. Basta adicionar isso a
/etc/profile.d/ssh-helper.sh
:fonte
ps -A | grep ssh-agent
oups h -C ssh-agent
deveria ser usado em vez deps | grep ssh-agent
echo ssh-auth | bash
falhará.AddKeysToAgent yes
(ou useprompt
) à sua entrada ssh config (useHost *
para todos os Hosts.) Dessa forma, você só será solicitada a senha SSH se realmente tentar se conectar, caso contrário, poderá ser solicitada uma senha para um simplesgit diff
ougit status
.$HOME/.ssh
pode ser mais robusto do que/home/$(whoami)/.ssh
Eu tinha o mesmo problema
Ubuntu
e as outras soluções não me ajudaram. Finalmente percebi qual era o meu problema. Eu criei minhasssh
chaves na/root/.ssh
pasta. Então, mesmo quando eu corrissh-add
como root, ele não conseguiu fazer o seu trabalho e continuou dizendoCriei minhas chaves públicas e privadas ssh na
/home/myUsername/
pasta e useientão eu corri
e o problema foi resolvido dessa maneira.
Nota: Para acessar seu repositório,
git
adicione sua senha git ao criarssh
chaves comssh-keygen -t rsa -C "your git email here"
.fonte
Use o parâmetro -A ao se conectar ao servidor, exemplo:
da página do manual:
fonte
A solução básica para executar
ssh-agent
é respondida em muitas respostas. No entanto, a execuçãossh-agent
várias vezes (por cada terminal aberto ou por login remoto) criará muitas cópias dassh-agent
execução na memória. Os scripts sugeridos para evitar esse problema são longos e precisam gravar e / ou copiar arquivos separados ou escrever muitas strings em~/.profile
ou~/.schrc
. Deixe-me sugerir uma solução simples de duas cordas:Para sh , bash , etc:
Para csh , tcsh , etc:
O que está aqui:
ssh-agent
pelo nome e pelo usuário atualssh-agent
e execute-ssh-agent
se se nenhumssh-agent
processo do usuário atual for encontradoNão é necessário proteger o script shell criado
~/.ssh-agent.tcsh
ou o~/.ssh-agent.sh
acesso de outros usuários porque: a comunicação inicial comssh-agent
é processada através do soquete protegido, que não é acessível a outros usuários, e, no segundo momento, outros usuários podem encontrar ossh-agent
soquete simples por arquivos de enumeração no/tmp/
diretório. Quanto ao acesso aossh-agent
processo, são as mesmas coisas.fonte
Tente o seguinte:
fonte
Leia a resposta do @ cupcake para obter explicações. Aqui eu apenas tento automatizar a correção.
Se você estiver usando o terminal Cygwin com BASH, adicione o seguinte ao arquivo $ HOME / .bashrc. Isso inicia o ssh-agent apenas uma vez no primeiro terminal Bash e adiciona as chaves ao ssh-agent. (Não tenho certeza se isso é necessário no Linux)
NÃO SE ESQUEÇA de adicionar as chaves corretas no comando "ssh-add".
fonte
Eu tive esse problema, quando iniciei o ssh-agent, quando ele já estava em execução. Fica confuso. Para ver se é esse o caso, use
para ver se é o mesmo que você pensou que deveria ser. No meu caso, era diferente do que acabei de iniciar.
Para verificar ainda mais se você possui mais de um agente ssh em execução, pode revisar:
fonte
eval $(ssh-agent)
deve criar um novo agente com um PID diferente toda vez, embora eu possa estar errado.Eu tive um problema semelhante quando estava tentando fazer isso funcionar no Windows para conectar-se ao stash via ssh
Aqui está a solução que funcionou para mim.
Acontece que eu estava executando o agente Pageant ssh na minha caixa do Windows - verificaria o que você está executando. Eu suspeito que é Pageant, pois vem como padrão com Putty e winScp
O ssh-add não funciona na linha de comandos com este tipo de agente
Você precisa adicionar a chave privada através da janela da interface do usuário do concurso, que pode ser obtida clicando duas vezes no ícone Pageant na barra de tarefas (uma vez iniciado).
Antes de adicionar a chave ao Pageant, você precisa convertê-la para o formato PPK. Instruções completas estão disponíveis aqui Como converter a chave SSH para o formato ppk
É isso. Depois de carregar minha chave no stash, pude usar o SourceTree para criar um repositório local e clonar o controle remoto.
Espero que isto ajude...
fonte
Resolvi o erro forçando o processo de interrupção (eliminado) do git (agente ssh), desinstalando o Git e instalando o Git novamente.
fonte
Usando o Git Bash no Win8.1E, minha resolução foi a seguinte:
fonte
/dev/null
? Sua resposta basicamente faz exatamente a mesma coisa que esta .~/.ssh/id_rsa
é a chave padrão, portanto você não precisa especificarssh-add ~/.ssh/id_rsa
, apenasssh-add
deve funcionar.Se você estiver usando o Putty, talvez seja necessário definir a opção "Conexão / SSH / Autenticação / Permitir encaminhamento de agente" como "true".
fonte
Isso funcionou para mim.
fonte
Para o bash incorporado no Windows 10, adicionei isso ao .bash_profile:
fonte
$(ssh-agent -s)
para definir o ambiente do agente.