Criei um novo repositório e estou com um erro estranho. Eu usei o Git antes no Bitbucket, mas apenas reformatei e agora não consigo fazer o Git funcionar. Depois de confirmar, tive que adicionar meu e-mail e nome aos globais, mas, em seguida, foi confirmado.
Quando tento usar o comando
git push origin master
isso não funciona. Eu recebo esta mensagem:
$ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Estou perdida aqui. Meu amigo com quem estou compartilhando este repositório, o acessou bem e o empurrou muito bem, mas não consigo fazê-lo funcionar.
Respostas:
Escreva isso para aqueles que estão começando o Git e o BitBucket no Windows e que não estão tão familiarizados com o Bash (já que esse é um problema comum e um resultado do Google de alto nível ao procurar a mensagem de erro na pergunta).
Para aqueles que não se importam com HTTPS e estão procurando uma solução rápida, role até a parte inferior desta resposta para obter instruções em FOR THE LAZY
Para aqueles que procuram resolver o problema real, siga as instruções abaixo:
Corrigindo o problema SSH o mais rápido possível
Este é um conjunto de instruções derivadas do URL vinculado pelo VonC. Foi modificado para ser o mais resiliente e sucinto possível.
Não digite o
$
linhas que não começam$
(o que$
significa que você digita no GitBash).Abra o GitBash
Defina suas informações globais se você ainda não tiver:
Verifique o OpenSSH:
Viu algo assim?
Veja se você já gerou as chaves:
Se houver dois arquivos, você pode pular a próxima etapa.
Deixe tudo como o padrão, digite uma senha. Agora você deve ver resultados com este comando:
Verifique se há um arquivo de configuração existente:
Se você obtiver um resultado, verifique este arquivo para obter informações incorretas. Se não houver arquivo, faça o seguinte:
Confirme o conteúdo:
Verifique se você está iniciando o agente SSH toda vez que executar o GitBash:
start_agent
, esta etapa já foi concluída.Digite o seguinte no GitBash para criar seu arquivo .bashrc:
Verifique se o arquivo foi criado com sucesso (o seu deve diferir apenas onde "seu nome de usuário" aparece):
.bashrc
não é executado por padrão -.bash_profile
é. Para corrigir isso, coloque esse trecho no seu.bash_profile
:[[ -s ~/.bashrc ]] && source ~/.bashrc
Se você não inserisse uma senha, você teria visto algo assim ao iniciar o GitBash:
E o seguinte deve retornar resultados:
No entanto, se você obtiver o seguinte em
ssh-add -l
:Não gerou o agente SSH e é provável que o seu .bashrc seja a causa.
Se, ao iniciar o GitBash, você verá o seguinte:
Isso significa que você esqueceu de escapar do $ com a \ ao ecoar no arquivo (ou seja, as variáveis foram expandidas). Recrie seu .bashrc para resolver isso.
Verifique se o agente está em execução e se suas chaves foram adicionadas:
Deve retornar algo semelhante a este:
Execute o seguinte comando para obter sua chave pública:
(deve retornar algo começando com "ssh-rsa ......"
ssh-rsa
bit inicial e o final== [email protected]
)CTRL+A
eCTRL+C
para copiar a chave pública novamente para a área de transferência.Configure sua chave privada com o BitBucket, executando as seguintes etapas:
Global Public Key
para o rótuloUma
Global Public Key
entrada agora deve estar visível na sua lista de chaves.Verifique seus controles remotos:
Alterne para o URL SSH:
Verifique se as coisas estão funcionando corretamente:
Você deve ver algo assim:
FEITO!
Você pode optar por usar HTTPS em vez de SSH. Isso exigirá que você digite sua senha durante operações remotas (é armazenada em cache temporariamente após a digitação). Aqui está como você pode configurar o HTTPS:
PARA O PREGUIÇOSO
Você deve corrigir o problema de SSH, conforme descrito por VonC; no entanto, se você estiver com pressa de confirmar e não tiver as ferramentas / tempo / conhecimento para gerar uma nova chave pública agora , defina sua origem para a alternativa HTTPS:
Usando uma ferramenta GUI, como o TortoiseGit ou ferramentas de linha de comando .
Aqui está a documentação deste URL de origem alternativo.
Linha de comando para adicionar uma origem se não existir:
Linha de comando para alterar uma origem existente:
NOTA: o nome da sua conta não é o seu email.
Você também pode definir suas informações globais:
Em seguida, tente seu push novamente (não há necessidade de confirmar novamente)
fonte
~/.bashrc
mas ainda quando você executar o comandossh-all -l
ainda mostraNo agent
Nesse caso, tente este comandossh-agent /bin/bash
e que a vontadeInitializing new SSH agent...
Este erro também ocorre se você esqueceu de adicionar a chave privada
ssh-agent
. Faça isso com:fonte
Reformatado significa que você provavelmente excluiu suas chaves ssh públicas e privadas (em ~ / .ssh).
Você precisa regenerá-los e publicar sua chave pública ssh no seu perfil BitBucket, conforme documentado em " Usar o protocolo SSH com Bitbucket ", seguindo " Configurar SSH para Git com GitBash ".
Contas-> Gerenciar Contas-> Chaves SSH:
Então:
Imagens do " Integrando o Mercurial / BitBucket ao software JetBrains "
fonte
Eu resolvi isso removendo o controle remoto usando o comando:
e tentei adicionar remoto usando https url em vez de ssh
Ele solicita credenciais do github. Digite credenciais e tente pressionar para git usando:
fonte
Eu tive o mesmo problema. Minhas chaves SSH foram definidas corretamente. Corrigi esse problema assim.
Depois de criar um novo projeto no Bitbucket, use clone. Digite o comando de clonagem no terminal e ele deve clonar o projeto vazio no seu computador. Depois disso, você pode copiar seus arquivos para esse diretório e começar a confirmar e enviar para o bitbucket.
fonte
git remote add
processo simplesmente não funcionou hoje - recebi o erro de autenticação ao tentar enviar - mas excluir .git e, em seguida, usargit clone
e copiar novamente minha fonte (apenas um README.md) funciona bem. Obrigado Rafael - certamente não teria pensado em tentar isso, se não fosse a sua resposta.mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Só precisa do arquivo de configuração no diretório ~ / .ssh
ref: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html
adicione a configuração abaixo no arquivo de configuração
fonte
Dois pequenos esclarecimentos que podem salvar alguém da confusão pela qual passei:
1 - Os URLs de conexão diferem para HTTPS e SSH
Ao conectar via https, você usa
no entanto, ao conectar via SSH, o nome da conta é sempre "git"
Tentar se conectar ao SSH com o nome da sua conta na frente levará ao erro que o pôster original recebeu. É assim que você pode fazer o teste de conexão com o git @, tentar por engano com seu nome de usuário e ver um erro.
2 - Chaves SSH por meio de contas da equipe serão descontinuadas em 2017
Se você estiver configurando chaves SSH em contas de equipe, eles recomendam alterná-las para contas pessoais. Uma dica útil para evitar
fonte
Se você estiver usando o SourceTree (estou usando o 2.4.1), encontrei uma maneira mais simples de gerar uma chave SSH e adicioná-la às minhas configurações de Bitbucket. Isso resolveu o problema para mim.
Recebi um email de confirmação do Bitbucket de que uma chave SSH foi adicionada à minha conta.
Para referência, no macOS, usando o Terminal, você pode usar o seguinte comando para ver as chaves geradas para o seu dispositivo. É aqui que a chave que você gerou é armazenada.
Como outros já declararam, esta documentação me ajudou: Use o protocolo SSH com o Bitbucket Cloud
fonte
Faça o ssh como no tutorial do Atlassian e verifique se a chave privada está sendo colada no perfil, não no repositório :)
fonte
Atlassian tutorial
? Quais são as etapas para colar a chave no perfil e como sei se ela está colada no repositório?Eu recebi esse mesmo erro para um repositório - de repente, todos os outros estavam e ainda funcionam bem quando estou tentando enviar confirmações. O problema parecia estar com a chave SSH (como você já sabe nos comentários anteriores) - no bitbucket
View Profile
, clique emManage Account
.No lado esquerdo, clique no
SSH Keys
diretório e adicione o que você possui em seu sistema no diretório ~ / .ssh /.Se você ainda não tiver um gerado - use as instruções de uma das postagens, mas certifique-se de usar o arquivo id_dsa.pub padrão ou o personalizado nomeado como um, exigindo posteriormente a
-i
opção com o caminho para a chave ao conectar ieDepois de adicionar sua chave local à sua conta no bitbucket, você poderá começar a interagir com seu repositório.
fonte
Eu achei que a solução que funcionou melhor para mim foi dividir o impulso em pedaços menores.
e remover os arquivos grandes de imagem da captura de tela (10mb +) das confirmações
No final, a segurança não era um problema mais sobre limites de arquivos bin
fonte
Este erro também aparece quando o repositório não existe. Eu tentei todas as respostas até que vi o nome do repositório faltando um traço
fonte
Para erros:
Acesso ao repositório [erro] negado. o acesso via chave de implantação é somente leitura. fatal: Não foi possível ler do repositório remoto. Verifique se você possui os direitos de acesso corretos e se o repositório existe.
[erro] fatal: não foi possível ler no repositório remoto.
[erro] fatal: não foi possível encontrar o auxiliar remoto para 'https'
Eu resolvi seguindo estas etapas:
Primeiro instale estas dependências:
Em seguida, remova o git:
Agora crie e instale o Git na última versão, neste caso:
Em seguida, para a configuração:
E, finalmente, instale assim:
é isso, agora configure seu repositório com https:
se você configurou uma chave ssh no servidor remoto, será necessário excluí-la.
fonte
Eu recebi esse erro
Então eu tentei
trabalhou sem aspas.
fonte
Eu descobri que a linha de comando git não gostava das chaves geradas por meu concurso (Windows 10).
Veja minha resposta no Serverfault
fonte
Estou usando o macOS e, embora eu tenha configurado minha chave pública no bitbucket na próxima vez que tentei pressionar
O que eu tive que fazer foi a Etapa 2. Adicione a chave ao ssh-agent conforme descrito no guia de configuração de chaves SSH do Bitbucket e, especialmente, na 3ª etapa:
Espero que ajude um usuário Mac com o mesmo problema.
fonte
Provavelmente, isso é causado por ter várias chaves SSH no agente SSH (e / ou BitBucket). Consulte a documentação do Atlassian para obter a solução alternativa para este problema.
fonte
Eu tive esse problema e pensei que estava louco. Uso SSH há 20 anos. e git sobre SSH desde 2012 ... mas por que não consegui buscar meu repositório de bitbucket no meu computador doméstico?
bem, eu tenho duas contas de bitbucket e tinha 4 chaves SSH carregadas dentro do meu agente. mesmo que meu .ssh / config tenha sido configurado para usar a tecla correta. quando o ssh estava inicializando a conexão, estava usando-os na ordem carregada no agente. então eu estava entrando na minha conta pessoal de bitbucket.
em seguida, obtendo um erro proibido tentando obter o repo. faz sentido.
Descarreguei a chave do agente
ssh-add -d ~/.ssh/personal_rsa
então eu poderia buscar os repositórios.
... Mais tarde, descobri que posso forçá-lo a usar apenas a identidade especificada
Eu não sabia sobre essa última opção
IdentitiesOnly
da própria documentação do bitbucket
https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/
fonte
Apenas tente
fonte