Estou no Mac Snow Leopard e acabei de instalar git
.
Eu apenas tentei
git clone [email protected]:cakebook.git
mas isso me dá esse 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 senha, mas ainda o mesmo erro.
git
ssh
ssh-keys
public-key
teepusink
fonte
fonte
sudo
- esse é outro usuário com outra chave pública.ssh-keygen
utilitário. A exclusão da chave pública antiga nas configurações pessoais no github e a adição da chave id_rsa.pub gerada pelo ssh às chaves SSH e GPG corrigiram os problemas de permissão de clonagem.Respostas:
Se o usuário não gerou um par de chaves pública / privada 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. (Veja gitolite , gitlab ou github, por exemplo.)
Mais informações podem ser encontradas em https://help.github.com/articles/generating-ssh-keys (graças a @Lee Whitney) -
Se o usuário gerou um par de chaves pública / privada ssh definido antes
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
fonte
ssh-add ~/.ssh/id_rsa
.xclip
no Linux só trabalhou fazendo o seguintexclip -sel clip < ~/.ssh/id_rsa.pub
que está listado aqui: help.github.com/articles/generating-ssh-keysSolução de problemas mais extensa e até correção automática podem ser feitas com:
Fonte: https://help.github.com/articles/error-permission-denied-publickey/
fonte
Este erro pode ocorrer quando você está acessando o URL SSH (leitura / gravação) em vez do URL somente leitura do Git, mas você não tem acesso de gravação a esse repositório.
Às vezes, você apenas deseja clonar seu próprio repositório, por exemplo, implantar em um servidor. Nesse caso, você realmente só precisa de acesso READ-ONLY. Mas como esse é seu próprio repositório, o GitHub pode exibir o URL SSH se essa for sua preferência. Nessa situação, se a chave pública do host remoto não estiver nas chaves SSH do GitHub, seu acesso será negado, o que é esperado que aconteça .
Um caso equivalente é quando você tenta clonar o repositório de outra pessoa para o qual você não tem acesso de gravação com o URL SSH.
Em uma palavra, se sua intenção é clonar apenas um repositório, use URL HTTPS (
https://github.com/{user_name}/{project_name}.git
) em vez de URL SSH ([email protected]:{user_name}/{project_name}.git
), o que evita a validação de chave pública (desnecessária).Atualização: o GitHub está exibindo HTTPS como o protocolo padrão agora e essa mudança provavelmente pode reduzir o possível uso indevido de URLs SSH.
fonte
https://github.com
git url, ele ainda dizSSL certificate problem: self signed certificate in certificate chain
.git -c http.sslVerify=false clone ...
parece uma jogada perigosa. O Chrome não fornece nenhum aviso de SSL. Pensamentos?git clone https://github.com/MyUserName/MyRepo.git
Basta clicar nos links de texto abaixo do URL do repositório, à direita da página do Github, onde diz " Você pode clonar com HTTPS, SSH ou Subversion . " (Clique HTTPS para obter o link em vez do padrão SSH .)O link de ajuda do github me ajudou a resolver esse problema. Parece que a chave ssh não foi adicionada ao agente ssh. Isto é o que eu acabei fazendo.
Comando 1:
Verifique se o ssh-agent está ativado. O comando inicia o ssh-agent em segundo plano:
Comando 2:
Adicione sua chave SSH ao ssh-agent:
fonte
Obteve o mesmo relatório de erro.
Corrigido o uso de HTTP. Desde que eu não quero definir "chaves SSH" para um PC de teste.
Altere o URL para HTTP ao clonar:
Meu problema é um pouco diferente : tenho um URL definido ao adicionar um repositório local existente ao remoto, usando:
Para corrigi-lo, redefina o URL para HTTP:
BTW, você pode verificar sua URL usando o comando:
Espero que isso ajude alguém como eu. : D
fonte
Isso funciona para mim:
fonte
Observe que (pelo menos para alguns projetos) você deve ter uma conta no github com uma tecla ssh .
Veja as chaves listadas no seu agente de autenticação ( ssh-add -l )
(se você não vir nenhuma, adicione uma das chaves 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. Consulte: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html ou apenas google ssh-keygen)
Para verificar se você possui uma chave associada à sua conta do github :
Acesse: https://github.com/settings/ssh
Você deve ver pelo menos uma chave com uma chave de hash correspondente a um dos hashes que você viu quando digitou ssh-add -l apenas um minuto atrás.
Caso contrário, adicione um e tente novamente.
fonte
Eu estava lutando com o mesmo problema que foi o que fiz e fui capaz de clonar o repo. Eu segui estes procedimentos para o iMac .
Primeiro passo: Verificando se já temos a chave SSH pública.
ls -al ~/.ssh
para ver se as chaves SSH existentes estão presentes:Verifique a lista de diretórios para ver se você já possui uma chave SSH pública. O público padrão é um dos seguintes d_dsa.pub, id_ecdsa.pub, id_ed25519.pub, id_rsa.pub
Se você não encontrar, vá para a etapa 2, caso contrário, siga a etapa 3
Etapa 2: Gerando Chave SSH Pública
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair
. Quando solicitar"Enter a file in which to save the key,"
pressionar Enter. Isso aceita o local padrão do arquivo. Quando solicitado,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.Enter passphrase (empty for no passphrase): [Type a passphrase]
pressione Enter se não quiserEnter same passphrase again: [Type passphrase again]
pressionar Enter novamenteIsso irá gerar
id_rsa.pub
Etapa 3: Adicionando sua chave SSH ao ssh-agent
eval "$(ssh-agent -s)"
$ ssh-add -K ~/.ssh/id_rsa
Agora copie a chave SSH e adicione-a à sua conta do github
pbcopy < ~/.ssh/id_rsa.pub
Isso copiará o arquivo para a sua área de transferência. Agora abra sua conta do github Vá para Configurações> Chaves SSH e GPG> Nova chave SSH Digite o título e cole a chave da área de transferência e salve-a. Voila, você terminou.fonte
Eu tive uma situação ligeiramente diferente, estava conectado a um servidor remoto e estava usando o git no servidor. Quando executei qualquer comando git, recebi a mesma mensagem
A maneira como eu o corrigi foi alterando o arquivo / etc / ssh_config no meu Mac. de
para
fonte
config.ssh.forward_agent = true
, reiniciei a VM e agora funciona.Eu encontrei o mesmo problema porque pensei que a diferença entre SSH e HTTPS é
https://github.com/USERNAME/REPOSITORY.git
ssh://github.com/USERNAME/REPOSITORY.git
Então mudei de HTTPS para SSH apenas mudando
https://
parassh://
nada no final do URL foi alterado.Mas a verdade é:
O que significa que mudei
ssh://github.com/USERNAME/REPOSITORY.git
para[email protected]:USERNAME/REPOSITORY.git
isso funciona.Erro estúpido, mas a esperança ajuda alguém!
fonte
ssh://github.com/USERNAME/REPOSITORY.git
para[email protected]:USERNAME/REPOSITORY.git
ele funciona.ssh
vez dehttps
então eu apenas mudei 'https: //' para 'ssh: // `, então eu recebi o erro. Então mude 'ssh: // git /../ `para' git @ .. /":) Editou minha resposta.No Windows, verifique se todos os seus aplicativos estão de acordo com o HOME. Surpreendentemente, o Msys NÃO fará isso por você. Eu tive que definir uma variável de ambiente porque o ssh e o git não conseguiram concordar sobre onde estava o meu diretório .ssh.
fonte
Você está em um ambiente corporativo ? É possível que suas variáveis de sistema tenham sido alteradas recentemente? Por esta resposta do SO, as teclas ssh estão em
%HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub
. Portanto, 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 [email protected]
. Anote ondeidentity file
está localizado. Para mim, isso estava apontando não para o meu normal,\Users\MyLogin
mas para uma unidade de rede, devido a uma alteração nas variáveis de ambiente empurradas no nível da rede.A solução? Como o meu novo
%HOMEDRIVE%
possui as mesmas permissões que os meus arquivos locais, mudei para minha pasta .ssh e a encerrei.fonte
Gente, é assim que funcionou para mim:
Nota : Você não deve usar o comando sudo com o Git. Se você tiver uma boa razão para usar o sudo, garanta que o esteja usando com todos os comandos (provavelmente é melhor usar o su para obter um shell como root nesse ponto). Se você gerar chaves SSH sem sudo e tentar usar um comando como sudo git push, não usará as mesmas chaves que gerou
fonte
As instruções básicas do GIT não fizeram referência ao material da chave SSH. Seguindo alguns dos links acima, encontrei uma página de ajuda do git que explica, passo a passo, exatamente como fazer isso em vários sistemas operacionais (o link detectará seu sistema operacional e será redirecionado de acordo):
http://help.github.com/set-up-git-redirect/
Ele percorre tudo o necessário para o GITHub e também fornece explicações detalhadas como "por que adicionar uma senha ao criar uma chave RSA". Pensei em publicá-lo, caso isso ajude alguém ...
fonte
Uma das maneiras mais fáceis
vá para terminal-
fonte
Além da resposta da Rufinus, o atalho para copiar sua chave ssh para a área de transferência no Windows é:
type id_rsa.pub | clip
Refs:
fonte
Se você tiver mais de uma chave, poderá ser necessário
ssh-add private-keyfile
fonte
Eu acertei esse erro porque precisava conceder minhas permissões de diretório de trabalho atuais 700:
fonte
Eu tive que copiar minhas chaves ssh para a pasta raiz. Google Cloud Compute Engine executando o Ubuntu 18.04
fonte
Acabei de enfrentar esse problema ao definir meu projeto atual e nenhuma das soluções acima funciona. então tentei olhar o que realmente está acontecendo na lista de depuração usando o comando ssh -vT [email protected]. Percebo que meu nome de arquivo de chave privada não está na lista. renomeando o nome do arquivo da chave privada para 'id_rsa' fazer o trabalho. Espero que isso possa ajudar.
fonte
É bem direto. Digite o comando abaixo
Gere a chave SSH. Abra o arquivo e copie o conteúdo. Vá para a página de configuração do GitHub e clique na chave SSH. Clique em Adicionar nova chave SSH e cole o conteúdo aqui. É isso :) Você não deve ver o problema novamente.
fonte
Eu estava recebendo um erro semelhante de permissão negada (chave pública) ao tentar executar um makefile.
Como alternativa às etapas SSH acima, você pode instalar o aplicativo nativo do GitHub for Mac.
Clique em Baixar GitHub para Mac de - https://help.github.com/articles/set-up-git#platform-mac
Depois de concluir a configuração com sua conta do git hub (eu também instalei as ferramentas de linha de comando do git hub, mas não tenho certeza se essa etapa é necessária ou não), recebi um email -
[GitHub] Uma nova chave pública foi adicionada à sua conta
e meu erro foi corrigido.
fonte
Eu estava recebendo o mesmo erro. Meu problema foi misturar sudo.
Não consegui criar o diretório no qual estava clonando automaticamente sem prefixar o comando git clone com o sudo. Quando fiz isso, no entanto, minhas chaves ssh não estavam sendo adequadamente referenciadas.
Para corrigi-lo, defino permissões via chmod no diretório pai que desejo conter meu clone para que eu possa escrever nele. Então eu executei o git clone SEM um prefixo sudo. Então funcionou! Alterei as permissões novamente depois disso. Feito.
fonte
Eu estava recebendo esse erro porque gerei as chaves ssh com o email errado. Consegui conectar usando ssh, mas não usando git. A solução foi gerar novamente as chaves usando o endereço de email principal da minha conta do github.
fonte
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 na área de transferência executando o seguinte:
fonte
Funcionou para mim
fonte
A solução mais fácil para isso, quando você está tentando enviar para um repositório com um nome de usuário diferente é:
fonte
Esse erro estranho, no meu caso, foi um sintoma de
gnome-keyring-daemon
nomear incorretamente a chave para a qual exigia uma senha.Eu sigo as etapas descritas aqui e digitei a senha pelo terminal. O erro, também conhecido como interface GUI confusa, foi resolvido. Consulte: /ubuntu/3045/how-to-disable-gnome-keyring
fonte
No meu caso, eu reinstalei o ubuntu e o nome do usuário foi alterado em relação ao anterior. Nesse caso, a chave ssh gerada também difere da anterior.
O problema resolvido basta copiar a chave pública ssh atual, no repositório. A chave estará disponível no seu usuário
/home/.ssh/id_rsa.pub
fonte
No meu MAC, resolvi isso com:
Por alguma razão, 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 o git continuou funcionando normalmente.Eu acho que é um bug.
Eu pude encontrar esse comportamento em execução
ssh -vT [email protected]
fonte