2013-07-14 12 views
32

Próbuję wepchnąć mój projekt na mój bitbucket, borykałem się z tym przez około 4 dni przelewając się przez niezliczone rozwiązywanie problemów/strony/rozwiązywanie problemów/tutoriale. Jestem zagubiony i bardzo sfrustrowany. I zrobili to wcześniej, ale na różnych komputerach ... i tak oto kod/odpowiedź, że jestem corazNie można przekazać do bitbucket, Odmowa uprawnień (publickey)

~/dev/sample_app git push -u origin --all 
The authenticity of host 'bitbucket.org (131.103.20.168)' can't be established. 
RSA key fingerprint is 81:7b:2c:f5:6f:18:2b:7c:4b:ec:aa:46:46:74:7c:40. 
Are you sure you want to continue connecting (yes/no)? 
Host key verification failed. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
~/dev/sample_app 

jestem na Mac z systemem 10.8.4.

Więc trochę poczyniono postępy, początkowo nie było folderu .ssh więc stworzyłem ten sposób z powrotem na początku, nie było sygn known_hosts więc wpadłem

ssh -T [email protected] 

Wybrałem tak i ten stworzony plik known_hosts a kiedy próbowała ponownie naciskać mam:

~/dev/sample_app git push -u origin --all 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

folder Moje .ssh 700 i klucze wewnątrz są 600.

+16

Udzielenie odpowiedzi na własne pytanie jako formalnej odpowiedzi jest rzeczywiście zalecane, tak abyś wiedział :) – iono

+0

A klucz publiczny odpowiadający Twojemu kluczowi prywatnemu jest zarejestrowany na Twoim koncie bitbucket, prawda? – janos

Odpowiedz

5

bardziej zrównoważone rozwiązanie jest edytować .bashrc (np. vi ~/.bashrc), a następnie dodaj następującą linię do niego (wymienić nazwę klucza)

ssh-add ~/.ssh/YOUR_KEY

Spowoduje to załadowanie klucz automatycznie po uruchomieniu skorupy

13

To może uczynić administratorów odrzut z przerażeniem, ale po doznaniu ten problem (Windows) dałem się na SSH i wrócił do HTTPS.

Po pierwszym dodaniu zdalnego repozytorium do Git, zastąp odniesienie SSH "[email protected]" adresem URL HTTPS "https://<username>@bitbucket.org".

Musisz wpisać swoje hasło za każdym razem, ale szczególnie w systemie Windows, w którym SSH nie jest tak powszechnie dostępny jak w rodzinie * nix, widzę to jako niewielką niedogodność w porównaniu z bólami głowy SSH.

+0

Spędziłem na to wiele godzin i wydaje się, że jedyną metodą uzyskania tego jest użycie Pageant. Nie lubię uruchamiać takiego oprogramowania w tle, zwłaszcza jeśli integruje się z Eksploratorem Windows, ale wydaje się, że BitBucket nie działa w ten sam prosty sposób, jak GitHub, gdzie mogę po prostu użyć 'ssh- keygen' do generowania klucza publicznego i dodawania go do mojego konta GitHub. Zgadzam się, że BitBucket i Windows są po prostu kiepską kombinacją i uciekają się do używania HTTPS. –

0

W moim przypadku to rozwiązało problem, aby dodać klucz ssh z katalogu

~/.ssh/id_rsa.pub 

na bitbucket.org. Nazwałam go również id_rsa.pub na stronie internetowej.

Na początku dodałem kolejny klucz, który stworzyłem dla bitbucket i nazwałam go w ten sposób. Pierwsze zdalne działania zadziałały, ale po kilku dniach żądanie zostało odrzucone.

0

W systemie Windows @efesaid odpowiedź działała w celu rozwiązania problemów z testem połączenia ssh. Przy okazji możesz dodać opcję -v, aby sprawdzić, które klucze (według nazwy) są podejmowane i dlaczego połączenie się nie udaje.

Jednak, gdy naciskając na bitbucket, używając [email protected]: user/repo.git, wydaje się, że host nie jest dokładnie bitbucket.org, więc wciąż otrzymywałam odmowę uprawnień. Rozwiązałem je poprzez (ponowne) nadanie mojego klucza id_rsa (jest to nazwa klucza, która była próbowana w teście ssh).

Działa to, jeśli masz pojedynczy klucz RSA. Dla wielu kluczy, może gospodarz w pliku konfiguracyjnym musi być

bitbucket.org:username 

ale nie jestem pewien, że to unde

3

I w obliczu tych samych problemów w systemie Linux (Ubuntu).

I rozwiązać go za pomocą ustawień w git:

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

Drukowanie przy użyciu klucza publicznego i klucza SSH kota do bitbucket.org:

$ cat ~/.ssh/id_rsa.pub 

Dodawanie Bitbucket i winduje repozytorium:

git remote add origin [email protected]:<username>/your repository name.git 
git push -u origin --all 

To wszystko!

0

Uważam, że instrukcje bitbucket są najlepsze. Sprawdź, czy jest zainstalowane ssh i jeśli nie zainstalować go

[email protected]:~$ ssh -v 
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] 
      [-D [bind_address:]port] [-E log_file] [-e escape_char] 
      [-F configfile] [-I xxxxx] [-i identity_file] 
      [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] 
      [-O ctl_cmd] [-o option] [-p port] 
      [-Q cipher | cipher-auth | mac | kex | key] 
      [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] 
      [-w local_tun[:remote_tun]] [[email protected]]hostname [command] 

[email protected]:~$ ls -a ~/.ssh 
. .. google_compute_engine google_compute_engine.pub identity identity.pub known_hosts 

[email protected]:~$ ssh-keygen 
Generating public/private rsa key pair. 
Enter file in which to save the key (/home/krasen/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/krasen/.ssh/id_rsa. 
Your public key has been saved in /home/krasen/.ssh/id_rsa.pub. 
The key fingerprint is: 
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx [email protected] 
The key's randomart image is: 
+--[ RSA 2048]----+ 
|    . | 
|   xx x | 
|   xxxxx | 
|  xxxxxxxxx | 
|  .xxxxxxxx | 
|  xxxxx  | 
|  xxxxxxxxxxxx| 
| xxxxxxxxxxxxx| 
|  xxxxxxxxxxx | 
+-----------------+                                 
[email protected]:~$ ls -la ~/.ssh                           
total 40 
drwx------ 2 krasen krasen 4096 Jun 29 14:30 . 
drwxr-xr-x 110 krasen krasen 4096 Jun 29 13:00 .. 
-rw------- 1 krasen krasen 1675 Mar 18 2015 google_compute_engine 
-rw-r--r-- 1 krasen krasen 409 Mar 18 2015 google_compute_engine.pub 
-rw------- 1 krasen krasen 1679 Jun 29 13:15 identity 
-rw-r--r-- 1 krasen krasen 409 Jun 29 13:15 identity.pub 
-rw------- 1 krasen krasen 1679 Jun 29 14:30 id_rsa 
-rw-r--r-- 1 krasen krasen 409 Jun 29 14:30 id_rsa.pub 
-rw-r--r-- 1 krasen krasen 4698 Jun 29 13:16 known_hosts 

[email protected]:~$ ssh-agent /bin/bash 

aby sprawdzić, czy agent jest uruchamiany

[email protected]:~$ ps -e | grep [s]sh-agent 
26503 ?  00:00:00 ssh-agent 
[email protected]:~$ ssh-add ~/.ssh/id_rsa 
Identity added: /home/krasen/.ssh/id_rsa (/home/krasen/.ssh/id_rsa) 
[email protected]:~$ ssh-add -l 
2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx /home/krasen/.ssh/id_rsa (RSA) 
[email protected]:~$ cat ~/.ssh/id_rsa.pub 
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 

dostać ten klucz i dodać go jako klucz w ustawieniach bitbucket

1

Sprawdź, czy objąć istniejącymi SSH Key

ls -al ~/.ssh 

Skopiuj SSH Key

cat ~/.ssh/id_rsa.pub | pbcopy 

Dodaj skopiowany klucz SSH do "Ustawienia Bitbucket", "Zabezpieczenia", "Klucze SSH".

7

W moim przypadku na świeżym Ubuntu 16 maszynie mi brakuje plików w ~/.ssh folderze więc co przepracowanych:

  1. idź do folderu ~/.ssh
  2. Run ssh-keygen i nazwać plik tj id_rsa
  3. Run cat ~/.ssh/id_rsa.pub | xclip -sel clip
    Jeśli przegapisz xclip po prostu apt-get install xclip :)
  4. Przejdź do (w ustawieniach adresu URL USERNAME t O swoją nazwę użytkownika bitbucket :)) https://bitbucket.org/account/user/USERNAME/ssh-keys/
  5. Kliknij Add key i wklej klucz ze schowka

Magic - to działa teraz :)

+0

Pytanie dotyczy systemu Mac OS, apt-get nie ma nic do roboty – coto

+0

Problem na Ubuntu doprowadził mnie do tego pytania i odpowiedzi (dlaczego? Zobacz tagi) i ten problem dotyka użytkowników Ubuntu - więc opisałem swoje doświadczenia z - cóż .. Ubuntu (ponieważ nie mogę w 100% powiedzieć, że to rozwiązanie będzie działało w innym systemie operacyjnym). Twoje zdrowie. – abrasadera

+0

nadal nie działa dla mnie (używam Mac), jakiś pomysł? – anunixercoder

3

Możecie być ssh jako url pochodzenia git.Spróbuj usunąć pochodzenie ssh tak jak Następnie dodaj nowe pochodzenie za pomocą adresu URL HTTPS i spróbuj ponownie.

git remote add origin https://[email protected]/SOMETHING/SOMETHING.git 
git push -u origin master 

Upewnij się, że wkleiłeś swój adres URL z bitbucket jako źródło.

0

Zajęło mi się podobne zagadnienie, w którym wcześniej korzystałem z protokołu HTTPS, aby uzyskać dostęp do repozytorium i musiałem przełączyć się na SSH, ustawiając adres URL w taki sposób;

git remote set-url origin ssh://[email protected]/... 
0

Może to być oczywiste, ale poświęciłem na to sporo czasu.

Sprawdź docelowy podczas pracy git remote -v

w moim przypadku miałem klucze ssh idealnie skonfigurować ale wyjście z tego polecenia był:

origin [email protected]:USERNAME/REPOSITORY.git

(zauważysz uzyskać nie git)

i nie

origin [email protected]:USERNAME/REPOSITORY.git

Ponownie był to bardzo szczególny przypadek, ale należy dokładnie sprawdzić struny tego systemu, jeśli masz problemy.

Można to naprawić za pomocą następujących poleceń:

git remote set-url origin [email protected]:USERNAME/REPOSITORY.git

0

Po skonfigurowaniu git z git config --global user.name "My Name" i git config --global user.email [email protected], ja wciąż kłopoty z Permission denied (PublicKey) błędu. Aby rozwiązać ten problem, najpierw wygenerowany nowy żeton z ssh

ssh-keygen 

i kopiować je z

pbcopy < ~/.ssh/YOUR_KEY 

Potem poszedłem do bitbucket.com dodać go jako nowy klucz SSH w ustawieniach . Potem wróciłem do mojego terminalu, aby dodać nowy klucz z

ssh-add ~/.ssh/YOUR_KEY. 

Dużym problemem że mam to, że brakowało mi krytycznej polecenia ssh-add [key].

0

Upewnij się, że na terminalu jest włączony właściwy użytkownik.

W moim przypadku użytkownik root nie był tym, który ma klucze ssh dodane w panelu ustawień bitbucket. Uruchomienie gita z sudo powoduje uruchomienie go z poziomu użytkownika root, a mój własny to ten, który ma dodane klucze.

Powiązane problemy