Ich versuche, mein Projekt auf mein Bitbucket zu schieben. Ich habe ungefähr 4 Tage damit herumgespielt und unzählige Problemlösungen/Seiten/Problemlösungen/Tutorials durchlaufen. Ich bin ratlos und sehr frustriert. Ich habe das aber schon auf verschiedenen Computern gemacht ... sowieso hier ist der Code/die Antwort, die ich bekomme
~/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 bin auf einem Mac mit 10.8.4.
Es wurde also ein kleiner Fortschritt gemacht, anfangs gab es keinen .ssh-Ordner, also habe ich das am Anfang so erstellt, es gab keine known_hosts-Datei, also lief ich
ssh -T [email protected]
Ich entschied mich für yes und dies erzeugte eine known_hosts-Datei und als ich erneut Push versuchte, 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 Schlüssel darin sind alle 600.
Sie können die IdentityFile-Flag-Datei in der Datei ~/.ssh/config wie folgt festlegen:
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
Wenn du rennst
ssh [email protected]
mit dem SSH-Client können Sie eine Datei auswählen, aus der die Identität (privater Schlüssel) für die RSA- oder DSA-Authentifizierung gelesen wird.
SSH-Client zur Verwendung des angegebenen privaten Schlüssels (Identitätsdatei)
Es mag wahnsinnig sein, dass Sysadmins zurückschrecken, aber nachdem ich dieses Problem (Windows) erlitten hatte, gab ich SSH auf und ging zurück zu HTTPS.
Ersetzen Sie beim Hinzufügen des Remote-Repositorys zu Git die SSH-Referenz '[email protected]
' durch die HTTPS-URL 'https://<username>@bitbucket.org
'.
Sie müssen Ihr Passwort jedes Mal eingeben, aber insbesondere unter Windows, wo SSH nicht so häufig verfügbar ist wie bei der * nix-Familie, sehe ich dies als geringfügige Unannehmlichkeit im Vergleich zu den Kopfschmerzen von SSH.
Möglicherweise verwenden Sie ssh als git Origin-URL. Versuchen Sie, das ssh Origin auf diese Weise zu entfernen
git remote rm Origin
Fügen Sie dann mit HTTPS-URL neues Origin hinzu, und versuchen Sie es erneut.
git remote add Origin https://[email protected]/SOMETHING/SOMETHING.git
git Push -u Origin master
Stellen Sie sicher, dass Sie Ihre URL aus dem Bitbucket als Origin einfügen.
In meinem Fall auf einem neuen Ubuntu 16-Computer fehlten mir Dateien im ~/.ssh
-Ordner. Was funktionierte:
~/.ssh
ssh-keygen
aus und benennen Sie Ihre Datei, d. H. id_rsa
.cat ~/.ssh/id_rsa.pub | xclip -sel clip
ausführenxclip
nur apt-get install xclip
vermissen :)Add key
und fügen Sie den Schlüssel aus der Zwischenablage einMagie - es funktioniert jetzt :)
Eine nachhaltigere Lösung ist die Bearbeitung von .bashrc
(z. B. vi ~/.bashrc
) und das Hinzufügen der folgenden Zeile (Ersetzen des Schlüsselnamens).
ssh-add ~/.ssh/YOUR_KEY
Dadurch wird der Schlüssel automatisch geladen, wenn Sie die Shell starten
In Linux (Ubuntu) hatte ich dieselben Probleme.
Ich habe es mit setup in git
gelöst:
git config --global user.name "Your Name"
git config --global user.email [email protected]
Den öffentlichen Schlüssel mit cat und SSH-Schlüssel an bitbucket.org drucken:
$ cat ~/.ssh/id_rsa.pub
Bitbucket hinzufügen und das Repository hochschieben:
git remote add Origin [email protected]:<username>/your repository name.git
git Push -u Origin --all
Das ist alles!
Nachdem ich git mit git config --global user.name "My Name"
und git config --global user.email [email protected]
eingerichtet hatte, hatte ich immer noch Probleme mit dem Fehler Permission Denied, (publickey). Um dieses Problem zu lösen, habe ich zuerst ein neues ssh-Token mit generiert
ssh-keygen
und kopierte es mit
pbcopy < ~/.ssh/YOUR_KEY
Danach ging ich zu bitbucket.com, um es in meinen Einstellungen als neuen SSH-Schlüssel hinzuzufügen. Dann kehrte ich zu meinem Terminal zurück, um den neuen Schlüssel mit hinzuzufügen
ssh-add ~/.ssh/YOUR_KEY.
Das große Problem, das ich hatte, war, dass ich den kritischen ssh-add [key]
-Befehl vermisst habe.
Überprüfen Sie, ob der SSH-Schlüssel vorhanden ist
ls -al ~/.ssh
Kopieren Sie den SSH-Schlüssel
cat ~/.ssh/id_rsa.pub | pbcopy
Fügen Sie den kopierten SSH-Schlüssel zu "Bitbucket-Einstellungen", "Sicherheit" und "SSH-Schlüssel" hinzu.
Ich hatte ein ähnliches Problem mit BitBucket. In meinem Fall wurde es erst behoben, nachdem ich herausgefunden hatte, dass ich Sudo vom Git-Klon-Befehl entfernen sollte!
Nach Attlassian :
Sie sollten Sudo nicht verwenden beim Klonen, Schieben oder Ziehen, weil die ssh-agent wird auf Benutzerebene ausgeführt, nicht auf der Stammebene.
Das mag offensichtlich sein, aber ich habe ziemlich viel Zeit damit verbracht.
Überprüfen Sie das Ziel, wenn Sie git remote -v
ausführen.
In meinem Fall hatte ich die ssh-Tasten perfekt eingerichtet, aber die Ausgabe dieses Befehls war:
Origin [email protected]:USERNAME/REPOSITORY.git
(beachte diegetnotgit)
und nicht
Origin [email protected]:USERNAME/REPOSITORY.git
Auch dies war ein sehr spezieller Fall, aber überprüfen Sie die Zeichenfolgen dieses Systems sorgfältig, wenn Sie Probleme haben.
Sie können dies mit den folgenden Befehlen beheben:
git remote set-url Origin [email protected]:USERNAME/REPOSITORY.git
Ich habe ein ähnliches Problem gelöst, bei dem ich zuvor HTTPS für den Zugriff auf das Repository verwendet hatte und zu SSH wechseln musste, indem ich die URL so setzte.
git remote set-url Origin ssh://[email protected]/...
In Windows hat die @efesaid-Antwort zur Lösung von Problemen mit dem SSH-Verbindungstest funktioniert. Sie können übrigens eine -v hinzufügen, um zu sehen, welche Schlüssel (nach Name) versucht werden und warum die Verbindung fehlschlägt.
Wenn Sie jedoch zu bitbucket über [email protected]: user/repo.git wechseln, scheint der Host nicht exakt bitbucket.org zu sein, so dass mir immer noch die Berechtigung verweigert wurde. Ich löste sie, indem ich meinen Schlüssel (erneut) mit id_rsa benannte (dies ist der Schlüsselname, der im ssh-Test versucht wurde).
Dies funktioniert, wenn Sie einen einzelnen RSA-Schlüssel haben. Bei mehreren Schlüsseln muss möglicherweise der Host in der Konfigurationsdatei vorhanden sein
bitbucket.org:username
aber ich bin mir nicht sicher, dass dies unklar ist
Ich denke, dass die bitbucket Anweisungen am besten sind. Überprüfen Sie, ob ssh installiert ist und wenn nicht, installieren Sie es
[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
[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
holen Sie sich diesen Schlüssel und fügen Sie ihn als Schlüssel in den Bitbucket-Einstellungen hinzu
Stellen Sie sicher, dass Sie auf dem Terminal zum richtigen Benutzer gewechselt haben.
In meinem Fall war der root-Benutzer nicht derjenige, der im Bitbucket-Einstellungsfeld ssh-Schlüssel hinzugefügt hat. Wenn Sie git mit Sudo ausführen, wird es vom root-Benutzer ausgeführt, und mein eigener Benutzer hat der Schlüssel hinzugefügt.
Beim Abrufen vom Bitbucket-Server ist derselbe Fehler aufgetreten. Diese Antwort hat mir geholfen https: //stackoverflow.com/users/2957677/toby-mellor
anstelle von Sudo git pull Origin branch_name
ich habe zu git pull Origin branch_name gewechselt
Das hat mein Problem behoben
In meinem Fall wurde das Problem gelöst, den ssh-Schlüssel aus dem Verzeichnis hinzuzufügen
~/.ssh/id_rsa.pub
auf bitbucket.org . Ich habe es auch id_rsa.pub auf der Website genannt.
Am Anfang habe ich einen weiteren Schlüssel hinzugefügt, den ich nur für bitbucket erstellt und so benannt habe. Die ersten Remote-Aktionen funktionierten, aber nach einigen Tagen wurde die Anfrage abgelehnt.
Mein Problem war mit Berechtigungen zu tun.
Mein Projektverzeichnis gehörte root
, aber ich war als ubuntu
angemeldet. Ich würde PERMISSION DENIED
bekommen, wenn ich einen git-Befehl eingebe, z. git pull Origin master
, also habe ich Sudo git pull Origin master
verwendet.
Ich hatte den ubuntu
SSH-Schlüssel von /home/ubuntu/.ssh/id_rsa.pub
bei BitBucket registriert.
Ich habe jedoch Sudo
verwendet. Der verwendete SSH-Schlüssel war also /home/root/.ssh/id_rsa.pub
, was sich von dem von BitBucket unterschied.
Lösung für meinen Fall
chown -R username_here:username_here project/folder/here
Jetzt sollte es funktionieren, wenn Sie nicht Sudo
voranstellen
ODERgeben Sie den Schlüssel von BitBucket root