Pergunta

Estou no Mac Snow Leopard e acabei de instalar git.

Eu apenas tentei

git clone git@thechaw.com:cakebook.git

mas isso me dá este erro:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

o que estou perdendo?
Eu também tentei fazer ssh-keygen sem passphase, mas ainda com o mesmo erro.

Foi útil?

Solução

O usuário não gerou um par de teclas público/privado SSH definido antes?

Esta informação está funcionando no TheChaw, mas pode ser aplicada a todos os outros repositórios Git que suportam autenticações SSH PubKey. (Ver gitolite, gitlab ou github, por exemplo.)

Primeiro, inicie a configuração do seu próprio conjunto de pares públicos/privados. Isso pode usar o DSA ou o RSA, então basicamente qualquer chave que você configurar funcionará. Na maioria dos sistemas, você pode usar ssh-keygen.

  • Primeiro, você deseja CD no seu diretório .ssh. Abra o terminal e corra:

    cd ~/.ssh && ssh-keygen

  • Em seguida, você precisa copiar isso para sua área de transferência.
    • No OS X Run: cat id_rsa.pub | pbcopy
    • On Linux Run: cat id_rsa.pub | xclip
    • No Windows (via Cygwin/Git Bash) Run: cat id_rsa.pub | clip
  • Adicione sua chave à sua conta através do site.
  • Finalmente, configure seu .gitConfig.
    • git config --global user.name "bob"
    • git config --global user.email bob@...(Não se esqueça de reiniciar sua linha de comando para garantir que a configuração esteja recarregada)

É isso que você deve ser bom para clonar e fazer checkout.

Mais informações podem ser encontradas em https://help.github.com/articles/generating-sh-keys (obrigado a @lee whitney) -

O usuário gerou um par de chaves públicas/privadas SSH definido antes?

  • Verifique qual chave foi autorizada nas configurações da conta Github ou Gitlab
  • informa qual chave privada correspondente deve ser associada do seu computador local

eval $(ssh-agent -s)

Diga onde as chaves estão localizadas

ssh-add ~/.ssh/id_rsa

Outras dicas

Solução de problemas mais extensa e até mesmo a fixação automatizada pode ser feita com:

ssh -vT git@github.com

Fonte: https://help.github.com/articles/error-permission-denied-publickey/

Esse erro pode acontecer quando você está acessando o URL SSH (leitura/gravação) em vez de URL somente leitura Git, mas você não tem acesso a esse repositório.

Às vezes, você só deseja clonar seu próprio repo, por exemplo, implantar em um servidor. Nesse caso, você realmente só precisa de acesso somente leitura. Mas já que isso é seu próprio Repo, o GitHub pode exibir URL SSH se essa for sua preferência. Nesta situação, se a chave pública do seu host remoto não estiver em suas chaves ssh do github, seu acesso será negado, o que deve acontecer.

Um caso equivalente é quando você tenta clonar o repositório de outra pessoa para o qual você não tem acesso a gravação com URL SSH.

Em um mundo, Se sua intenção é clonar apenas um repo, use URL HTTPS (https://github.com/{user_name}/{project_name}.git) em vez de URL SSH (git@github.com:{user_name}/{project_name}.git), que evita a validação (desnecessária) da chave pública.


ATUALIZAÇÃO: O GitHub está exibindo HTTPS como o protocolo padrão agora e esse movimento provavelmente pode reduzir o possível uso indevido de URLs SSH.

A ajuda do Github link me ajudou a resolver esse problema. Parece que a chave SSH não foi adicionada ao agente ssh. Foi isso que acabei fazendo.

Comando 1:

Verifique se o ssh-agent está ativado. O comando inicia o agente ssh em segundo plano:

eval "$(ssh-agent -s)"

Comando 2:

Adicione sua chave SSH ao SSH-Agent:

ssh-add ~/.ssh/id_rsa

Isso funciona para mim:

ssh-add ~/.ssh/id_rsa

Tenho o mesmo relatório de erro.

Corrigido com o uso de HTTP. Como não quero definir "SSH Keys" para um PC de teste.

Altere o URL para HTTP quando clone:

git clone https://github.com/USERNAME/REPOSITORY.git

Meu problema é um pouco diferente: Eu tenho URL definido ao adicionar um repositório local existente ao controle remoto, usando:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

Para corrigi -lo, redefina o URL para HTTP:

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

BTW, você pode verificar seu URL usando o comando:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

Espero que isso ajude alguém como eu. : D

Observe que (pelo menos para alguns projetos) você deve ter uma conta do github com uma chave ssh.

Veja as chaves listadas em seu agente de autenticação (ssh -add -l)
(Se você não vir, adicione uma de suas teclas existentes com ssh-add/path/to/your/key (por exemplo: ssh-add ~/.ssh/id_rsa))
(Se você não tiver nenhuma chave, primeiro crie uma. Veja: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html ou apenas Google ssh-keygen)

Para verificar se você tem uma chave associada à sua conta do GitHub:

Vamos para: https://github.com/settings/ssh

Você deve ver pelo menos uma chave com uma chave de hash correspondente a um dos hashes que viu quando digitou ssh -add -l Apenas um minuto atrás.

Se não o fizer, adicione um, tente novamente.

Eu tive uma situação ligeira diferente, estava conectado a um servidor remoto e estava usando o Git no servidor, quando corri qualquer comando git, recebi a mesma mensagem

   Permission denied (publickey).
   fatal: The remote end hung up unexpectedly

A maneira como eu corrigi foi alterando o arquivo /etc /ssh_config no meu Mac. a partir de

ForwardAgent no 

para

ForwardAgent yes

Eu estava lutando com o mesmo problema que fiz e pude clonar o repo. Eu segui esse procedimento para iMac.

Primeira etapa: verificando se já temos a chave SSH pública.

  1. Terminal aberto.
  2. Digitar ls -al ~/.ssh Para ver se estão presentes as teclas SSH existentes:

Verifique a listagem do diretório para ver se você já possui uma chave ssh pública.

Se você não encontrar, vá para a etapa 2, de outra forma, siga a etapa 3

Etapa 2: Gerando a chave SSH pública

  1. Terminal aberto.
  2. Digite o comando slogeong com seu endereço de e -mail válido que você usa para o github ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. Você verá o seguinte no terminal Generating public/private rsa key pair. Quando solicita"Enter a file in which to save the key," pressione Enter. Isso aceita o local do arquivo padrão. Quando solicita Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] Basta pressionar Enter novamente. No prompt, digite uma senha segura.
  4. Enter passphrase (empty for no passphrase): [Type a passphrase] pressione Enter se você não quiser Enter same passphrase again: [Type passphrase again] Pressione Enter novamente

Isso vai gerar id_rsa.pub

Etapa 3: Adicionando sua chave SSH ao SSH-Agent

  1. Tipo interminal eval "$(ssh-agent -s)"
  2. Adicione sua chave SSH ao SSH-Agent. Se você estiver usando uma chave SSH existente em vez de gerar uma nova tecla SSH, precisará substituir o ID_RSA no comando pelo nome do seu arquivo de chave privada existente. Digite este comando $ ssh-add -K ~/.ssh/id_rsa

Agora copie a tecla SSH e também adicione -a à sua conta GitHub

  1. No terminal, insira este comando com seu nome de arquivo ssh pbcopy < ~/.ssh/id_rsa.pub Isso copiará o arquivo para a sua área de transferência agora abrir sua conta Github, vá para Configurações> chaves ssh e gpg> nova tecla SSH Digite o título e cole a chave na área de transferência e salve -a. Pronto, você terminou.

Eu conheci o mesmo problema por causa de pensei a diferença entre Ssh e Https é

https://github.com/USERNAME/REPOSITORY.git

ssh://github.com/USERNAME/REPOSITORY.git

Então eu mudei de Https para Ssh apenas mudando https:// para ssh:// Nada no final do URL foi alterado.

Mas a verdade é:

https://github.com/USERNAME/REPOSITORY.git

git@github.com:USERNAME/REPOSITORY.git

O que significa que eu mudei ssh://github.com/USERNAME/REPOSITORY.git para git@github.com:USERNAME/REPOSITORY.git funciona.

Erro estúpido, mas a esperança ajuda alguém!

As instruções básicas do GIT não fizeram uma referência ao material chave do SSH. Seguindo alguns dos links acima, encontrei uma página de ajuda git que explica, passo a passo, exatamente como fazer isso para vários sistemas operacionais (o link detectará seu sistema operacional e redirecionará, de acordo):

http://help.github.com/setup-git-redirect/

Ele caminha por tudo o que é necessário para o Github e também oferece explicações detalhadas, como "Por que adicionar uma senha ao criar uma chave RSA". Imaginei que eu publicaria, caso isso ajude outra pessoa ...

No Windows, verifique se todos os seus aplicativos concordam em casa. Surpreendentemente, os MSYs não farão isso por você. Eu tive que definir uma variável de ambiente porque o SSH e o Git não pareciam concordar sobre onde estava meu diretório .SSH.

Você está em um ambiente corporativo?É possível que as variáveis ​​do seu sistema tenham mudado recentemente?Por esse Então responda, as chaves ssh ficam em %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub.Então se %HOMEDRIVE% alterado recentemente, o git não sabe onde procurar sua chave e, portanto, todo o material de autenticação.

Tente correr ssh -vT git@github.com.Tome nota de onde identity file está localizado.Para mim, isso estava apontando não para o meu normal \Users\MyLogin mas sim para uma unidade de rede, devido a uma alteração nas variáveis ​​de ambiente enviadas no nível da rede.

A solução?Desde o meu novo %HOMEDRIVE% tem as mesmas permissões dos meus arquivos locais, acabei de mover minha pasta .ssh para lá e encerrei o dia.

Gente é assim que funcionou para mim:

1- Terminal aberto e vá para o usuário [veja a imagem anexada

2- Pasta .ssh aberta e verifique se ela não possui nenhum arquivo como id_rsa ou id_rsa.pub, caso contrário, às vezes não reescreve adequadamente os arquivos

3 -Git --version [Verifique a instalação e versão do Git

4- Git Config-Usuário global.

5- Git Config-Usuário global.name "Seu nome"

6- Config-List [Certifique-se de definir seu nome e e-mail

7- CD ~/.SSH

8- ssh-keygen, ele solicita salvar arquivo, permita

9- CAT ~/.SSH/ID_RSA.PUB [Acesse sua chave pública e copie a chave para configurações de Gerrit

Observação: Você não deve estar usando o comando sudo com git. Se você tiver um bom motivo, deve usar o sudo, verifique se está usando com todos os comando (provavelmente é melhor usar o SU para obter um shell como raiz nesse ponto). Se você gerar chaves ssh sem sudo e tentar usar um comando como sudo git push, você não usará as mesmas teclas que gerou

enter image description here

enter image description here

Uma das maneiras mais fáceis

vá para o terminal-

  git push <Git Remote path> --all

Além da resposta de Rufinus, o atalho para copiar sua chave SSH para a prancha em janelas é:

  • type id_rsa.pub | clip

Refs:

Se você tem mais de uma chave, pode precisar fazerssh-add private-keyfile

Acabei de experimentar esse problema ao definir meu projeto atual e nenhuma das soluções acima funciona. Então, tentei procurar o que realmente está acontecendo na lista de depuração usando o comando ssh -vt git@github.com. Percebo que meu nome de arquivo de chave privado não está na lista. Então, renomear o nome do arquivo de chave privado para 'id_rsa' fazer o trabalho. Espero que isso possa ajudar.

É bem direto. Digite o comando abaixo

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

Gerar a chave SSH. Abra o arquivo e copie o conteúdo. Vá para a página de configuração do Github e clique na tecla SSH. Clique em Adicionar nova tecla SSH e cole o conteúdo aqui. É isso :) Você não deve ver o problema novamente.

Eu acertei esse erro porque precisava dar às minhas permissões atuais de diretório de trabalho 700:

chmod -R 700 /home/ec2-user/

Eu estava recebendo um semelhante Permissão negada (PublicKey) Erro Ao tentar correr um Makefile.

Como alternativa às etapas SSH acima, você pode instalar o aplicativo Github nativo para Mac.

Clique Baixe o Github para Mac a partir de - https://help.github.com/articles/setup-git#platform-mac

Depois de concluir a configuração com sua conta do Git Hub (eu também instalei as ferramentas da linha de comando do Git Hub, mas não tenho certeza se essa etapa é necessária ou não), então recebi um email -

Github] Uma nova chave pública foi adicionada à sua conta

E meu erro foi corrigido.

Eu estava recebendo o mesmo erro. Meu problema foi misturar no sudo.

Não pude criar o diretório em que estava clonando automaticamente sem prefixar o comando Git Clone com Sudo. Quando eu fiz isso, no entanto, minhas teclas SSH, onde não foram devidamente referenciadas.

Para corrigi -lo, defino permissões via CHMOD no diretório pai que eu queria conter meu clone para poder escrever para ele. Então eu executei clone Git sem um prefixo sudo. Então funcionou! Eu mudei as permissões depois disso. Feito.

Eu estava recebendo esse erro porque gerei as teclas SSH com o email errado. Consegui me conectar usando SSH, mas não usando o Git. A solução foi regenerar as chaves usando o principal endereço de email da minha conta do GitHub.

Funcionou para mim.

Sua chave pública é salva no arquivo id_rsa.pub; e é a chave que você carrega na sua conta. Você pode salvar essa chave para a área de transferência executando o seguinte:

pbcopy <~/.ssh/id_rsa.pub

  • Copie a tecla SSH para a área de transferência, retorne ao Portal da Web.
  • No campo Key SSH, cole sua chave SSH.
  • No campo Nome, forneça um nome para a chave.
  • Salve  .

Funcionou para mim

ssh -i [your id_rsa path] -T github@github.com

A solução mais fácil para isso, quando você está tentando empurrar para um repositório com um nome de usuário diferente é:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

Esse erro estranho, no meu caso, foi um sintoma de gnome-keyring-daemon nomeando incorretamente a chave para a qual exigia uma senha.

Eu sigo as etapas descritas aqui e digitei a senha através do terminal. O erro, também conhecido como interface da GUI, foi resolvido. Ver: https://askubuntu.com/questions/3045/how-to-disable-gnome-keyring

No meu caso, reinstalei o Ubuntu e o nome do usuário é alterado em relação ao anterior. Nesse caso, a tecla SSH gerada também difere da anterior.

A questão resolvida apenas copia a chave pública do SSH atual, no repositório. A chave estará disponível no seu usuário /home/.ssh/id_rsa.pub

No meu Mac, resolvi isso com:

cp ~/.ssh/github_rsa ~/.ssh/id_rsa

Por algum motivo, meu git parou para encontrar a chave privada no github_rsa Arquivo. Isso aconteceu em um repositório específico. Quero dizer que em outros repositórios Git continuava funcionando normalmente.

Eu acho que é um bug.

Eu poderia encontrar esse comportamento em execução ssh -vT git@github.com

Use o link SSH do Github, mas não o anexa com o SSH, basta usar o que a guia SSH no Git Hub oferece para clonar seu repositório.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top