Utworzyłem nowe repozytorium i napotykam na dziwny błąd. Używałem Git wcześniej w Bitbucket, ale właśnie sformatowałem go i teraz nie mogę uruchomić Git. Po zatwierdzeniu musiałem dodać swój adres e-mail i imię do globals, ale potem wszystko się udało.
Kiedy próbuję użyć polecenia
git push origin master
to nie działa. Otrzymuję tę wiadomość:
$ 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.
Jestem tu zagubiony. Mój przyjaciel, z którym dzielę się tym repozytorium, uzyskał do niego dostęp i w porządku, ale nie mogę go uruchomić.
Odpowiedzi:
Piszę to dla tych, którzy dopiero zaczynają korzystać z Git i BitBucket w systemie Windows i nie są tak zaznajomieni z Bash (ponieważ jest to zarówno częsty problem, jak i wysoki wynik Google podczas wyszukiwania komunikatu o błędzie w pytaniu).
Dla tych, którzy nie mają nic przeciwko HTTPS i szukają szybkiego rozwiązania, przewiń do końca tej odpowiedzi, aby uzyskać instrukcje w sekcji FOR THE LAZY
Dla tych, którzy chcą rozwiązać rzeczywisty problem, postępuj zgodnie z poniższymi instrukcjami:
Naprawianie problemu SSH tak szybko, jak to możliwe
To jest zestaw instrukcji pochodzących z adresu URL, do którego prowadzi VonC. Został zmodyfikowany, aby był jak najbardziej elastyczny i zwięzły.
Nie wpisuj
$
ani żadnych linii, które nie zaczynają się od$
($
oznacza to, że jest to coś, co wpisujesz w GitBash).Otwórz GitBash
Ustaw informacje globalne, jeśli jeszcze tego nie zrobiłeś:
Sprawdź OpenSSH:
Widzisz coś takiego?
Sprawdź, czy wygenerowałeś już klucze:
Jeśli są dwa pliki, możesz pominąć następny krok.
Pozostaw wszystko jako domyślne, wprowadź hasło. Powinieneś teraz zobaczyć wyniki z tym poleceniem:
Sprawdź, czy istnieje plik konfiguracyjny:
Jeśli otrzymasz wynik, sprawdź ten plik pod kątem błędnych informacji. Jeśli żaden plik nie istnieje, wykonaj następujące czynności:
Potwierdź zawartość:
Sprawdź, czy uruchamiasz agenta SSH za każdym razem, gdy uruchamiasz GitBash:
start_agent
, ten krok został już zakończony.Wprowadź następujące informacje do GitBash, aby utworzyć plik .bashrc:
Sprawdź, czy plik został utworzony pomyślnie (Twój powinien różnić się tylko miejscem, w którym pojawia się „twoja nazwa użytkownika”):
.bashrc
nie jest wykonywane domyślnie -.bash_profile
jest. Aby to naprawić, umieść ten fragment w swoim.bash_profile
:[[ -s ~/.bashrc ]] && source ~/.bashrc
Gdybyś nie wpisał hasła, zobaczyłbyś coś takiego podczas uruchamiania GitBash:
A następujące wyniki powinny zwrócić wyniki:
Jeśli jednak uzyskasz następujące informacje od
ssh-add -l
:Nie stworzył agenta SSH, a przyczyną jest prawdopodobnie plik .bashrc.
Jeśli podczas uruchamiania GitBash zobaczysz to:
Oznacza to, że zapomniałeś wyjść z znaku $ za pomocą \ podczas echa do pliku (tj. Zmienne zostały rozwinięte). Utwórz ponownie plik .bashrc, aby rozwiązać ten problem.
Sprawdź, czy agent działa, a klucze zostały dodane:
Powinien zwrócić coś podobnego do tego:
Uruchom następujące polecenie, aby uzyskać swój klucz publiczny:
(powinno zwrócić coś zaczynającego się od „ssh-rsa ......”
ssh-rsa
początkowy i końcowy== [email protected]
bit)CTRL+A
a następnie,CTRL+C
aby ponownie skopiować klucz publiczny do schowka.Skonfiguruj swój klucz prywatny za pomocą BitBucket, wykonując następujące czynności:
Global Public Key
etykietęGlobal Public Key
Wpis powinien być teraz widoczny na liście kluczy.Sprawdź swoje piloty:
Przełącz się na URL SSH:
Sprawdź, czy wszystko działa:
Powinieneś zobaczyć coś takiego:
GOTOWE!
Możesz zdecydować się na użycie HTTPS zamiast SSH. Będzie wymagać wpisania hasła podczas operacji zdalnych (jest buforowane tymczasowo po jednokrotnym wpisaniu). Oto jak możesz skonfigurować HTTPS:
DLA LAZY
Powinieneś rozwiązać problem z SSH zgodnie z opisem VonC; Jednakże, jeśli jesteś w pośpiechu, aby popełnić i nie mają narzędzi / czas / wiedzę , aby wygenerować nowy klucz publiczny teraz ustawić swoje pochodzenie do HTTPS alternatywa:
Korzystanie z narzędzia GUI, takiego jak TortoiseGit lub narzędzi wiersza poleceń .
Oto dokumentacja tego alternatywnego adresu URL pochodzenia.
Wiersz poleceń, aby dodać początek, jeśli taki nie istnieje:
Linia poleceń do zmiany istniejącego początku:
UWAGA: nazwa Twojego konta nie jest Twoim adresem e-mail.
Możesz także ustawić informacje globalne:
Następnie spróbuj ponownie nacisnąć (nie ma potrzeby ponownego zatwierdzania)
źródło
~/.bashrc
ale nadal po uruchomieniu poleceniassh-all -l
Nadal się wyświetlaNo agent
W takim przypadku spróbuj tego poleceniassh-agent /bin/bash
i to będzieInitializing new SSH agent...
Ten błąd występuje również, jeśli zapomnisz dodać klucz prywatny do
ssh-agent
. Zrób to z:źródło
Sformatowany oznacza, że prawdopodobnie usunąłeś swoje publiczne i prywatne klucze ssh (w ~ / .ssh).
Musisz je zregenerować i opublikować swój publiczny klucz SSH w swoim profilu BitBucket, zgodnie z opisem w sekcji „ Używanie protokołu SSH z Bitbucket ”, po sekcji „ Konfigurowanie SSH dla Git z GitBash ”.
Konta-> Zarządzaj kontami-> Klucze SSH:
Następnie:
Obrazy z „ Integrowanie Mercurial / BitBucket z oprogramowaniem JetBrains ”
źródło
Rozwiązałem to usuwając pilota za pomocą polecenia:
a następnie próbował dodać zdalne przy użyciu adresu URL https zamiast ssh
Pyta o poświadczenia github. Wprowadź poświadczenia, a następnie spróbuj wypchnąć do git za pomocą:
źródło
Miałem ten sam problem. Moje klucze SSH zostały ustawione poprawnie. Naprawiłem ten problem w ten sposób.
Po utworzeniu nowego projektu w Bitbucket użyj clone. Wpisz polecenie klonowania w terminalu i powinno sklonować pusty projekt na twój komputer. Następnie możesz skopiować swoje pliki do tego katalogu i rozpocząć zatwierdzanie i wypychanie do bitbucket.
źródło
git remote add
proces dzisiaj po prostu nie zadziałał - podczas próby wypychania wystąpił błądgit clone
autoryzacji - ale usunięcie .git, a następnie użycie i ponowne skopiowanie mojego źródła (tylko plik README.md) działa dobrze. Dziękuję Rafael - z pewnością nie pomyślałbym, żeby spróbować, gdyby nie twoja odpowiedź.mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Wystarczy plik konfiguracyjny w katalogu ~ / .ssh
ref: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html
dodaj poniżej konfigurację w pliku konfiguracyjnym
źródło
Dwa małe wyjaśnienia, które mogą uratować komuś zamieszanie, przez które przeszedłem:
1 - adresy URL połączeń różnią się w przypadku HTTPS i SSH
Łącząc się przez https, używasz
jednak podczas łączenia się przez SSH nazwa konta to zawsze „git”
Próba połączenia się z SSH z nazwą konta na początku doprowadzi do błędu otrzymanego przez oryginalny plakat. W ten sposób możesz przeprowadzić test łącząc się z git @, a następnie przez pomyłkę spróbuj użyć swojej nazwy użytkownika i zobaczysz błąd.
2 - klucze SSH za pośrednictwem kont zespołu zostaną wycofane w 2017 r
Jeśli konfigurujesz klucze SSH na kontach zespołu, zalecamy przełączenie ich na konta osobiste. Przydatna wskazówka, aby uniknąć e
źródło
Jeśli używasz SourceTree (używam 2.4.1), znalazłem prostszy sposób na wygenerowanie klucza SSH i dodanie go do moich ustawień Bitbucket. To rozwiązało problem.
Otrzymałem wiadomość e-mail z potwierdzeniem od firmy Bitbucket, że klucz SSH został dodany do mojego konta.
Dla porównania, w systemie macOS za pomocą Terminala możesz użyć następującego polecenia, aby wyświetlić klucze wygenerowane dla Twojego urządzenia. Tutaj jest przechowywany wygenerowany klucz.
Jak powiedzieli inni, ta dokumentacja pomogła mi: Użyj protokołu SSH z Bitbucket Cloud
źródło
Wykonaj ssh tak, jak w samouczku Atlassian i upewnij się, że klucz prywatny jest wklejany w profilu, a nie w repozytorium :)
źródło
Atlassian tutorial
? Jakie są kroki, aby wkleić klucz do profilu i skąd mam wiedzieć, czy jest wklejony w repozytorium?Otrzymałem ten sam błąd dla jednego repozytorium - nagle wszystkie inne działały i nadal działają dobrze, gdy próbuję wypychać zatwierdzenia. Problem pojawił się z kluczem SSH (jak już wiesz z poprzednich komentarzy) - na bitbuckecie przejdź do,
View Profile
a następnie kliknijManage Account
.Po lewej stronie kliknij
SSH Keys
następnie dodaj ten, który masz w systemie do katalogu ~ / .ssh /.Jeśli nie masz jeszcze wygenerowanego pliku - skorzystaj z instrukcji z jednego z postów, ale upewnij się, że używasz domyślnego pliku id_dsa.pub lub niestandardowego pliku, z późniejszym wymaganiem
-i
opcji ze ścieżką do klucza, gdy connect iePo dodaniu klucza lokalnego do konta w bitbucket będziesz mógł rozpocząć interakcję z repozytorium.
źródło
Odkryłem, że najlepszym rozwiązaniem dla mnie jest rozbicie pchnięcia na mniejsze części.
i usunięcie dużych plików obrazów zrzutów ekranu (10 MB +) z zatwierdzeń
Bezpieczeństwo nie było problemem w końcu więcej o limitach plików bin
źródło
Ten błąd pojawia się również, gdy repozytorium nie istnieje. Wypróbowałem wszystkie odpowiedzi, aż zobaczyłem, że w nazwie repozytorium brakuje myślnika
źródło
W przypadku błędów:
[błąd] odmowa dostępu do repozytorium. dostęp za pośrednictwem klucza wdrożenia jest tylko do odczytu. krytyczny: nie można odczytać ze zdalnego repozytorium. Upewnij się, że masz odpowiednie prawa dostępu i że repozytorium istnieje.
[błąd] krytyczny: nie można odczytać ze zdalnego repozytorium.
[błąd] krytyczny: nie można znaleźć zdalnego pomocnika dla „https”
Rozwiązałem następujące kroki:
Najpierw zainstaluj te zależności:
Następnie usuń git:
Teraz skompiluj i zainstaluj Git w ostatniej wersji, w tym przypadku:
Następnie do konfiguracji:
I na koniec zainstaluj w ten sposób:
to wszystko, teraz skonfiguruj swoje repozytorium za pomocą https:
jeśli skonfigurowałeś klucz ssh na swoim zdalnym serwerze, musisz go usunąć.
źródło
Mam ten błąd
Potem spróbowałem
pracował bez cytatów.
źródło
Zauważyłem, że wiersz poleceń git nie spodobał się moim kluczom generowanym przez konkurs (Windows 10).
Zobacz moją odpowiedź na Serverfault
źródło
Używam macOS i chociaż ustawiłem swój klucz publiczny w Bitbucket następnym razem, gdy próbowałem push, otrzymałem
Musiałem zrobić krok 2. Dodaj klucz do ssh-agent zgodnie z opisem w przewodniku konfiguracji kluczy Bitbucket SSH, a zwłaszcza krok 3:
Mam nadzieję, że pomoże to użytkownikowi Maca z tym samym problemem.
źródło
Jest to prawdopodobnie spowodowane posiadaniem wielu kluczy SSH w agencie SSH (i / lub BitBucket). Sprawdź dokumentację Atlassian, aby znaleźć obejście tego problemu
źródło
Miałem ten problem i myślałem, że zwariowałem. Używam SSH od 20 lat. i git przez SSH od 2012 ... ale dlaczego nie mogłem pobrać repozytorium bitbucket na mój domowy komputer?
cóż, mam dwa konta Bitbucket i miałem 4 klucze SSH załadowane do mojego agenta. nawet jeśli mój plik .ssh / config został skonfigurowany do używania właściwego klucza. kiedy ssh inicjował połączenie, używał ich w kolejności załadowanej do agenta. więc logowałem się na swoje osobiste konto Bitbucket.
Następnie pojawia się błąd zabroniony podczas próby pobrania repozytorium. ma sens.
Wyładowałem klucz od agenta
ssh-add -d ~/.ssh/personal_rsa
wtedy mógłbym pobrać repozytoria.
... Później dowiedziałem się, że mogę zmusić go do używania tylko określonej tożsamości
Nie wiedziałem o tej ostatniej opcji
IdentitiesOnly
z samej dokumentacji programu bitbucket
https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/
źródło
Spróbuj
źródło