Nie można przekazać do repozytorium Git w usłudze Bitbucket

143

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ć.

Jason Dahl
źródło
4
możesz użyć https zamiast gits w zdalnym adresie URL. np .: twoja nazwauż[email protected]/nazwa drużyny
Ali
1
Rozwiązałem ten sam problem, uważnie śledząc samouczek Atlassian dotyczący konfiguracji SSH na twoim komputerze: confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git
sws

Odpowiedzi:

229

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ś:

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Sprawdź OpenSSH:

$ ssh -v localhost
OpenSSH_4.6p1, OpenSSL...

Widzisz coś takiego?

  • Tak: kontynuuj.
  • Nie: Przejdź do sekcji FOR THE LAZY lub postępuj zgodnie z połączonym artykułem z VonC.

Sprawdź, czy wygenerowałeś już klucze:

$ ls -a ~/.ssh/id_*

Jeśli są dwa pliki, możesz pominąć następny krok.

$ ssh-keygen

Pozostaw wszystko jako domyślne, wprowadź hasło. Powinieneś teraz zobaczyć wyniki z tym poleceniem:

$ ls -a ~/.ssh/id_*

Sprawdź, czy istnieje plik konfiguracyjny:

$ ls -a ~/.ssh/config

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:

$ echo "Host bitbucket.org" >> ~/.ssh/config
$ echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config

Potwierdź zawartość:

$ cat ~/.ssh/config

Host bitbucket.org
 IdentityFile ~/.ssh/id_rsa
  • Wymagana jest pojedyncza spacja przed „IdentityFile”.

Sprawdź, czy uruchamiasz agenta SSH za każdym razem, gdy uruchamiasz GitBash:

$ cat ~/.bashrc
  • Jeśli widzisz wywołaną funkcję start_agent, ten krok został już zakończony.
  • Jeśli nie ma pliku, kontynuuj.
  • Jeśli istnieje plik, który nie zawiera tej funkcji, jesteś w trudnej sytuacji. Prawdopodobnie jest to bezpieczne, aby dołączyć do niego (korzystając z poniższych instrukcji), ale może nie być! Jeśli nie jesteś pewien, zrób kopię zapasową swojego .bashrc przed wykonaniem poniższych instrukcji lub przejdź od razu do sekcji FOR THE LAZY .

Wprowadź następujące informacje do GitBash, aby utworzyć plik .bashrc:

$ echo "SSH_ENV=$HOME/.ssh/environment" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "# start the ssh-agent" >> ~/.bashrc
$ echo "function start_agent {" >> ~/.bashrc
$ echo "    echo \"Initializing new SSH agent...\"" >> ~/.bashrc
$ echo "    # spawn ssh-agent" >> ~/.bashrc
$ echo "    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > \"\${SSH_ENV}\"" >> ~/.bashrc
$ echo "    echo succeeded" >> ~/.bashrc
$ echo "    chmod 600 \"\${SSH_ENV}\"" >> ~/.bashrc
$ echo "    . \"\${SSH_ENV}\" > /dev/null" >> ~/.bashrc
$ echo "    /usr/bin/ssh-add" >> ~/.bashrc
$ echo "}" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "if [ -f \"\${SSH_ENV}\" ]; then" >> ~/.bashrc
$ echo "     . \"\${SSH_ENV}\" > /dev/null" >> ~/.bashrc
$ echo "     ps -ef | grep \${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {" >> ~/.bashrc
$ echo "        start_agent;" >> ~/.bashrc
$ echo "    }" >> ~/.bashrc
$ echo "else" >> ~/.bashrc
$ echo "    start_agent;" >> ~/.bashrc
$ echo "fi" >> ~/.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”):

$ cat ~/.bashrc
SSH_ENV=/c/Users/yourusername/.ssh/environment

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi
  • Zamknij GitBash i otwórz go ponownie.
  • Powinieneś zostać poproszony o podanie hasła (dla pliku SSH, który wygenerowałeś wcześniej).
  • Jeśli nie ma monitu, albo nie ustawiłeś hasła, albo GitBash nie uruchamia skryptu .bashrc (co byłoby dziwne, więc rozważ przejrzenie jego zawartości!). Jeśli używasz tego na komputerze Mac (OS X), .bashrcnie jest wykonywane domyślnie - .bash_profilejest. 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:

Initializing new SSH agent...
succeeded
Identity added: /c/Users/yourusername/.ssh/id_rsa (/c/Users/yourusername/.ssh/id_rsa)

A następujące wyniki powinny zwrócić wyniki:

$ ssh-add -l

Jeśli jednak uzyskasz następujące informacje od ssh-add -l:

Could not open a connection to your authentication agent.

Nie stworzył agenta SSH, a przyczyną jest prawdopodobnie plik .bashrc.

Jeśli podczas uruchamiania GitBash zobaczysz to:

Initializing new SSH agent...
sh.exe": : No such file or directory

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:

$ ssh-add -l

Powinien zwrócić coś podobnego do tego:

2048 0f:37:21:af:1b:31:d5:cd:65:58:b2:68:4a:ba:a2:46 /Users/yourusername/.ssh/id_rsa (RSA)

Uruchom następujące polecenie, aby uzyskać swój klucz publiczny:

$ cat ~/.ssh/id_rsa.pub

(powinno zwrócić coś zaczynającego się od „ssh-rsa ......”

  • Kliknij ikonę okna GitBash
  • Kliknij Edytuj
  • Kliknij Zaznacz
  • Podświetl klucz publiczny za pomocą myszy (w tym ssh-rsapoczątkowy i końcowy == [email protected]bit)
  • Kliknij prawym przyciskiem myszy okno (wykonuje kopię)
  • Wklej swój klucz publiczny do Notatnika.
  • Usuń wszystkie znaki nowej linii, tak aby była to tylko jedna linia.
  • Naciśnij, CTRL+Aa następnie, CTRL+Caby ponownie skopiować klucz publiczny do schowka.

Skonfiguruj swój klucz prywatny za pomocą BitBucket, wykonując następujące czynności:

  • Otwórz przeglądarkę i przejdź do witryny BitBucket.org
  • Zaloguj się do BitBucket.org
  • Kliknij swój awatar (w prawym górnym rogu)
  • Kliknij Zarządzaj kontem
  • Kliknij Klucze SSH (w sekcji Bezpieczeństwo w menu po lewej stronie)
  • Kliknij Dodaj klucz
  • Wpisz Global Public Keyetykietę
  • Wklej klucz publiczny skopiowany z Notatnika

Global Public KeyWpis powinien być teraz widoczny na liście kluczy.

  • Wróć do GitBash
  • cd do katalogu zawierającego twój projekt
  • Zmień pochodzenie na odmianę SSH (nie będzie, jeśli wykonałeś kroki FOR THE LAZY )

Sprawdź swoje piloty:

$ git remote -v

Przełącz się na URL SSH:

$ git remote set-url origin [email protected]:youraccount/yourproject.git

Sprawdź, czy wszystko działa:

$ git remote show origin

Powinieneś zobaczyć coś takiego:

Warning: Permanently added the RSA host key for IP address '...' to the list of known hosts.
* remote origin
  Fetch URL: [email protected]:youruser/yourproject.git
  Push  URL: [email protected]:youruser/yourproject.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

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:

> https://[email protected]/accountname/reponame.git

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:

git remote add origin https://[email protected]/accountname/reponame.git

Linia poleceń do zmiany istniejącego początku:

git remote set-url origin https://[email protected]/accountname/reponame.git

UWAGA: nazwa Twojego konta nie jest Twoim adresem e-mail.

Możesz także ustawić informacje globalne:

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

Następnie spróbuj ponownie nacisnąć (nie ma potrzeby ponownego zatwierdzania)

git push origin master
Graeme Wicksted
źródło
echo "Host bitbucket.org" >> ~ / .ssh.config, czy to nie powinno trwać długo '.' być „/”?
Peter
1
Czasami zdarza się, że dodałeś wszystko wymienione powyżej, ~/.bashrcale nadal po uruchomieniu polecenia ssh-all -lNadal się wyświetla No agent W takim przypadku spróbuj tego polecenia ssh-agent /bin/bashi to będzieInitializing new SSH agent...
tajne.
5
Jedna z najlepszych odpowiedzi, jakie kiedykolwiek spotkałem na StackOverflow
Sambhav Sharma
1
@JGallardo - Dobre pytanie! Dobra wiadomość brzmi: nie. Są to zmienne w skryptach powłoki bash - są podobne do zmiennych środowiskowych w plikach wsadowych.
Graeme Wicksted
1
Fakt, że nie jest to akceptowana odpowiedź, rani moje serce. Świetny napis!
ruby_newbie
58

Ten błąd występuje również, jeśli zapomnisz dodać klucz prywatny do ssh-agent. Zrób to z:

ssh-add ~/.ssh/id_rsa
Matthias Braun
źródło
4
To była odpowiedź w moim przypadku, coś, o czym zawsze zapominam, kiedy tworzę nowy klucz.
amertkara
1
To pomogło po przejrzeniu powyższego postu
Tony Merritt,
u mnie zadziałało :) ale musisz się upewnić, że masz już klucz prywatny ssh w swoim katalogu lokalnym i klucz publiczny zarejestrowany na koncie bitbucket
Daniel
25

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 sekcjiUżywanie protokołu SSH z Bitbucket ”, po sekcjiKonfigurowanie SSH dla Git z GitBash ”.

Konta-> Zarządzaj kontami-> Klucze SSH:

http://solvedproblems.hydex11.net/_media/solved-problems/crazy-problems/bitbucket_manage_account.png

Następnie:

http://solvedproblems.hydex11.net/_media/solved-problems/crazy-problems/bitbucket_add_ssh.png

Obrazy z „ Integrowanie Mercurial / BitBucket z oprogramowaniem JetBrains

VonC
źródło
7
Tylko trochę do tego dodać. Upewnij się, że używasz BitBucket (jak pokazano na zrzucie ekranu), że dodajesz klucz SSH do kluczy SSH swojego konta (Konta-> Zarządzaj kontami-> Klucze SSH). Dodanie go jako klucza wdrożenia za pośrednictwem ustawień repozytorium pozwoli na użycie tego klucza tylko do operacji tylko do odczytu (bez zatwierdzania).
welshk91
@ welshk91 Zgadzam się. Poprawiłem odpowiedź, dodając bardziej szczegółowe zdjęcia.
VonC,
1
@VonC - dzięki za opublikowanie tego. Na próżno próbowałem, aby to działało na komputerze z systemem Windows i to w końcu załatwiło sprawę. Dzięki, Ben
ben18785
21

Rozwiązałem to usuwając pilota za pomocą polecenia:

git remote remove origin

a następnie próbował dodać zdalne przy użyciu adresu URL https zamiast ssh

git remote add origin httpsUrl

Pyta o poświadczenia github. Wprowadź poświadczenia, a następnie spróbuj wypchnąć do git za pomocą:

git push origin master
Ankit Arora
źródło
1
to mi pomogło. to jest prawidłowa odpowiedź w moim przypadku. dziękuję
binsnoel
Mi to pasuje. Nie
usunąłem
Dzięki za bezpośrednią odpowiedź. Działało jak urok - to było dokładnie to, czego szukałem.
Alexandra,
4

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.

Rafael
źródło
1
Jak dziwnie. Mam ten sam problem, co w przypadku dzisiejszego OP, ale bez ponownej instalacji lub zmian w systemie moje klucze były w porządku. Ten git remote addproces dzisiaj po prostu nie zadziałał - podczas próby wypychania wystąpił błąd git cloneautoryzacji - 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ź.
kris,
cieszę się, że to rozwiązanie Ci pomogło
Rafael
1
Dziękuję za odpowiedź. Udało mi się rozwiązać ten problem, po prostu tworząc nowy katalog i klonując w tym nowym katalogu. mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Red Cricket
2

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

https://[email protected]/owner-account/repo-name.git

jednak podczas łączenia się przez SSH nazwa konta to zawsze „git”

ssh://[email protected]/owner-account/repo-name.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

Paulo
źródło
1

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.

  1. W SourceTree przejdź do Preferencji.
  2. Przejdź do zakładki Konta i wybierz swoje konto.
  3. Powinna istnieć opcja generowania i kopiowania klucza SSH do schowka.
  4. Po skopiowaniu przejdź do Bitbucket w przeglądarce. Przejdź do [awatar] -> Ustawienia Bitbucket.
  5. Przejdź do kluczy SSH.
  6. Kliknij Dodaj klucz
  7. Wklej skopiowany klucz.

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.

ls -la ~/.ssh

Jak powiedzieli inni, ta dokumentacja pomogła mi: Użyj protokołu SSH z Bitbucket Cloud

Sarah
źródło
1

Wykonaj ssh tak, jak w samouczku Atlassian i upewnij się, że klucz prywatny jest wklejany w profilu, a nie w repozytorium :)

Zabijaka
źródło
Czy mógłbyś dołączyć link do podanego Atlassian tutorial? Jakie są kroki, aby wkleić klucz do profilu i skąd mam wiedzieć, czy jest wklejony w repozytorium?
EmmanuelB
Jest tutaj. Wybierz najlepszy wybór dla swojej kombinacji skrzynek! confluence.atlassian.com/bitbucket/…
Hector
0

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 Profilea 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 -iopcji ze ścieżką do klucza, gdy connect ie

ssh -i ~/.ssh/customkeyname username@ip_address

Po dodaniu klucza lokalnego do konta w bitbucket będziesz mógł rozpocząć interakcję z repozytorium.

Sebastian Sulinski
źródło
0

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

Harry Bosh
źródło
Otrzymujesz powyższy błąd, zanotowany przez OP, i nie był to problem z autoryzacją / bezpieczeństwem? To był rozmiar twojego zobowiązania?
JohnZaj
Tak się stało
Harry Bosh
0

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

Mirko
źródło
0

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:

$ yum install expat expat-devel openssl openssl-devel

Następnie usuń git:

$ yum remove git git-all

Teraz skompiluj i zainstaluj Git w ostatniej wersji, w tym przypadku:

$ wget https://github.com/git/git/archive/v2.13.0.tar.gz
$ tar zxf v.2.13.0.tar.gz
$ cd git-2.13.0/

Następnie do konfiguracji:

$ make configure
$ ./configure --with-expat --with-openssl

I na koniec zainstaluj w ten sposób:

$ make 
$ make install install-doc install-html install-info

to wszystko, teraz skonfiguruj swoje repozytorium za pomocą https:

$ git remote add origin https://github.com/*user*/*repo*.git
# Verify new remote
$ git remote -v

jeśli skonfigurowałeś klucz ssh na swoim zdalnym serwerze, musisz go usunąć.

Johan Morales
źródło
0

Mam ten błąd

Połączenie z bitbucket.org zamknięte przez zdalny host. krytyczny: nie można odczytać ze zdalnego repozytorium. Upewnij się, że masz odpowiednie prawa dostępu.

Potem spróbowałem

git config --global user.email "[email protected]"

pracował bez cytatów.

Vkreddy Komatireddy
źródło
0

Zauważyłem, że wiersz poleceń git nie spodobał się moim kluczom generowanym przez konkurs (Windows 10).

Zobacz moją odpowiedź na Serverfault

HostMyBus
źródło
0

Używam macOS i chociaż ustawiłem swój klucz publiczny w Bitbucket następnym razem, gdy próbowałem push, otrzymałem

Odmowa dostępu do repozytorium.

krytyczny: nie można odczytać ze zdalnego repozytorium.

Upewnij się, że masz odpowiednie prawa dostępu i repozytorium istnieje.

Musiałem zrobić krok 2. Dodaj klucz do ssh-agent zgodnie z opisem w przewodniku konfiguracji kluczy Bitbucket SSH, a zwłaszcza krok 3:

(tylko macOS) Aby komputer zapamiętał hasło przy każdym ponownym uruchomieniu, otwórz (lub utwórz) plik ~ / .ssh / config i dodaj następujące wiersze do pliku:

Host *
UseKeychain tak

Mam nadzieję, że pomoże to użytkownikowi Maca z tym samym problemem.

sstauross
źródło
0

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

 Host bitbucket.org-user2
     HostName bitbucket.org
     User git
     IdentityFile ~/.ssh/user2
     IdentitiesOnly yes

Nie wiedziałem o tej ostatniej opcji IdentitiesOnly

z samej dokumentacji programu bitbucket

https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/

Mathieu J.
źródło
-1

Spróbuj

git remote add origin <HTTP URL>
Ashok Joshi
źródło
1
nie lubimy wpisywać nazwy użytkownika / hasła za każdym razem, gdy pobieramy / wysyłamy do bitbucket / github / etc /
Mathieu J.