2013-07-14 8 views
32

Ich versuche, mein Projekt auf meine Bitbucket zu schieben, damit für etwa 4 Tage durch unzählige Problemlösung/Seiten/Fehlersuche/Tutorials gießen. Ich bin ratlos und sehr frustriert. Ich habe dies getan, bevor aber auf verschiedenen Rechnern ... wie auch immer hier ist der Code/Antwort, dass ichKann nicht zu Bitbucket schieben, Permission denied (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 

ich auf einem Mac bin ich immer laufen 10.8.4.

So ein wenig Fortschritte gemacht worden sind, zunächst keine .ssh Ordner gab es so habe ich auf diese Weise wieder am Anfang gab es keine known_hosts-Datei so lief ich

ssh -T [email protected] 

ich ja gewählt haben und diese erstellt eine known_hosts-Datei und als ich wieder zu schieben versucht, bekam ich:

~/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. 

Mein .ssh Ordner ist 700 und die Innen Tasten sind alle 600

+16

beantworten Ihre eigene Frage als eine formale Antwort tatsächlich gefördert wird, nur damit Sie wissen :) – iono

+0

und der öffentliche Schlüssel zu Ihrem privaten Schlüssel entspricht, wird auf Ihrem Konto bitbucket rechts ein Profil? – janos

Antwort

5

eine nachhaltige Lösung ist zu bearbeiten .bashrc (z.B. vi ~/.bashrc) und dann die folgende Zeile, um es hinzuzufügen (ersetzen Sie den Schlüsselnamen)

ssh-add ~/.ssh/YOUR_KEY

Dadurch wird der Schlüssel automatisch geladen werden, wenn Sie die Shell

13

Es könnte sysadmins entsetzt machen schrecken, aber nach diesem Problem (Windows) leiden, gab ich auf SSH auf und ging zu HTTPS zurück.

Wenn Sie das Remote-Repository zu Git hinzufügen, ersetzen Sie die SSH-Referenz '[email protected]' durch die HTTPS-URL 'https://<username>@bitbucket.org'.

Sie müssen jedes Mal Ihr Passwort eingeben, aber insbesondere unter Windows, wo SSH nicht so häufig verfügbar ist wie bei der * nix-Familie, sehe ich dies als eine kleine Unannehmlichkeit im Vergleich zu den Kopfschmerzen von SSH.

+0

Ich habe Stunden und Stunden damit verbracht, und es scheint, dass der _only_ Weg, um das zu arbeiten, mit Pageant ist. Ich mag es nicht, Software wie diese ständig im Hintergrund laufen zu lassen, besonders wenn sie in den Windows Explorer integriert ist, aber es scheint, dass BitBucket nicht auf die gleiche Weise wie GitHub funktioniert, wo ich einfach 'ssh- verwenden kann. keygen' um einen öffentlichen Schlüssel zu generieren und zu meinem GitHub Account hinzuzufügen. Ich habe akzeptiert, dass BitBucket und Windows nur eine schlechte Kombination ist und habe auf HTTPS zurückgegriffen. –

0

In meinem Fall löste es das Problem den SSH-Schlüssel aus dem Verzeichnis

~/.ssh/id_rsa.pub 

auf bitbucket.org hinzuzufügen. Ich habe es auch id_rsa.pub auf der Website genannt.

Am Anfang habe ich einen anderen Schlüssel hinzugefügt, den ich nur für Bitbucket erstellt habe und so benannt habe. Die ersten Fernaktionen funktionierten, aber nach einigen Tagen wurde die Anfrage abgelehnt.

0

In Windows arbeitete @efesaid Antwort für die Lösung von Problemen mit dem SSH-Verbindungstest. Übrigens können Sie ein -v hinzufügen, um zu sehen, welche Schlüssel (namentlich) versucht werden und warum die Verbindung fehlschlägt.

Allerdings, wenn pushing zu bitbucket, mit [email protected]: user/repo.git, scheint es, dass der Host nicht genau bitbucket.org ist, so bekam ich immer noch Genehmigung verweigert Probleme. Ich habe sie gelöst, indem ich meinen Schlüssel zu id_rsa umbenannt habe (dies ist der Schlüsselname, der im ssh-Test versucht wurde).

Dies funktioniert, wenn Sie einen einzelnen RSA-Schlüssel haben. Für mehrere Schlüssel, vielleicht der Host in der Konfigurationsdatei muss

bitbucket.org:username 

sein, aber ich bin nicht sicher, dass dies unde ist

3

I gleichen Probleme in Linux (Ubuntu) konfrontiert.

Ich löste es Setup mit in git:

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

den öffentlichen Schlüssel Drucken Katze und SSH-Schlüssel verwenden, um bitbucket.org:

$ cat ~/.ssh/id_rsa.pub 

Bitbucket Hinzufügen und das Repository hochdrücken:

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

Das ist alles!

0

Ich denke, dass die bitbucket Anweisungen am besten sind. Überprüfen Sie, ob ssh installiert ist und wenn nicht installieren

[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 

zu überprüfen, ob der Agent

[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 

diesen Schlüssel erhalten gestartet wird, und fügen Sie es als Schlüssel in den bitbucket Einstellungen

1

prüfen exisiting SSH Key

ls -al ~/.ssh 

Kopieren Sie die SSH-Key

cat ~/.ssh/id_rsa.pub | pbcopy 

Fügen Sie den kopierten SSH-Schlüssel zu 'Bitbucket Settings', 'Security', 'SSH Keys' hinzu.

7

In meinem Fall auf frischen Ubuntu 16 Maschine war ich Dateien in ~/.ssh Ordner fehlt so was funktioniert hat:

  1. Go ~/.ssh
  2. Run ssh-keygen in Ordner und benennen Sie Ihre Datei also id_rsa
  3. Run cat ~/.ssh/id_rsa.pub | xclip -sel clip
    Wenn Sie vermissen xclip nur apt-get install xclip :)
  4. Gehen Sie zu (in URL wechseln USERNAME t o Ihr bitbucket Benutzername :)) https://bitbucket.org/account/user/USERNAME/ssh-keys/
  5. Klicken Sie Add key und den Schlüssel aus dem

Magie Zwischenablage einfügen - es funktioniert jetzt :)

+0

Die Frage ist für Mac OS, apt-get hat nichts – coto

+0

Problem auf Ubuntu zu tun, mich zu diesem Q lead & A (warum sehen die Tags?) Und dieses Problem berührt Ubuntu-Nutzer - so beschrieb ich meine Erfahrung mit - na ja .. Ubuntu (weil ich nicht 100% sagen kann, dass diese Lösung in anderen Betriebssystemen funktioniert). Prost. – abrasadera

+0

funktioniert immer noch nicht für mich (ich benutze Mac), keine Ahnung? – anunixercoder

3

Sie könnten ssh als git Ursprungs-URL verwenden.Versuchen Sie, den SSH-Ursprung zu entfernen, wie so

git remote rm origin 

Dann neuen Ursprung mit HTTPS-URL hinzufügen, und versuchen Sie es erneut drücken.

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

Stellen Sie sicher, dass Sie Ihre URL von Bitbucket als Ursprung einfügen.

0

Ich bekam ein ähnliches Problem, wo ich zuvor HTTPS verwendet hatte, um auf das Repository zuzugreifen, und musste zu SSH wechseln, indem ich die URL wie folgt setzte;

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

Das mag offensichtlich sein, aber ich habe ziemlich viel Zeit damit verbracht.

Überprüfen Sie das Ziel, wenn git remote -v

In meinem Fall laufen hatte ich die SSH-Schlüssel perfekt eingerichtet, aber die Ausgabe dieses Befehls war:

origin [email protected]:USERNAME/REPOSITORY.git

(Bekanntmachung der get nicht git)

und nicht

origin [email protected]:USERNAME/REPOSITORY.git

Auch dies war ein ganz besonderer Fall, aber sicher sein, die Saiten sorgfältig dieses Systems zu überprüfen, ob Sie Probleme haben.

Sie können dieses Problem beheben, mit den folgenden Befehlen:

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

0

Nach dem Einrichten git mit git config --global user.name "My Name" und git config --global user.email [email protected], war ich immer noch mit der Erlaubnis Probleme, verweigert, (publickey) Fehler. Um dies zu lösen, habe ich zunächst eine neue SSH-Token mit

ssh-keygen 

erzeugt und kopierte es mit

pbcopy < ~/.ssh/YOUR_KEY 

Danach ging ich zu bitbucket.com hinzufügen, um es als ein neuen SSH-Schlüssel in meinen Einstellungen . Dann kehrte ich in mein Terminal mit

ssh-add ~/.ssh/YOUR_KEY. 

Das große Problem mit dem neuen Schlüssel hinzuzufügen, die ich mit war, dass ich den kritischen ssh-add [key] Befehl verpasst.

0

Stellen Sie sicher, dass Sie zum richtigen Benutzer am Terminal gewechselt haben.

In meinem Fall war root-Benutzer nicht derjenige, der im Bitbucket-Einstellungsfenster ssh-Schlüssel hinzugefügt hat. Wenn git mit sudo ausgeführt wird, wird es vom root-Benutzer ausgeführt, und mein eigener Benutzer ist derjenige, dem Schlüssel hinzugefügt wurden.