Kann nicht in das Git-Repository auf Bitbucket pushen

142

Ich habe ein neues Repository erstellt und stoße auf einen seltsamen Fehler. Ich habe Git schon einmal auf Bitbucket verwendet, aber ich habe es gerade neu formatiert und jetzt kann ich Git nicht mehr zum Laufen bringen. Nachdem ich einen Commit durchgeführt hatte, musste ich meine E-Mail-Adresse und meinen Namen zu den Globals hinzufügen, aber dann wurde ein Commit durchgeführt.

Wenn ich versuche, den Befehl zu verwenden

git push origin master

es funktioniert nicht Ich bekomme diese Nachricht:

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

Ich bin hier ratlos. Mein Freund, mit dem ich dieses Repository teile, hat gut darauf zugegriffen und es problemlos aufgerufen, aber ich kann es anscheinend nicht zum Laufen bringen.

Jason Dahl
quelle
4
Sie können https anstelle von Git in Ihrer Remote-URL verwenden. Beispiel: [email protected]/teamname/repository.git
Ali
1
Ich habe das gleiche Problem gelöst, indem ich Atlassians Tutorial zum Einrichten von SSH auf Ihrem Computer genau befolgt habe: Confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git
sws
ähnliches Problem: stackoverflow.com/questions/12940626/…
JMoran

Antworten:

229

Schreiben Sie dies für diejenigen, die gerade erst mit Git und BitBucket unter Windows beginnen und mit Bash nicht so vertraut sind (da dies sowohl ein häufiges Problem als auch ein hochrangiges Google-Ergebnis ist, wenn Sie nach der Fehlermeldung in der Frage suchen).

Für diejenigen, denen HTTPS nichts ausmacht und die nach einer schnellen Lösung suchen, scrollen Sie zum Ende dieser Antwort, um Anweisungen unter FOR THE LAZY zu erhalten

Befolgen Sie für diejenigen, die das eigentliche Problem lösen möchten, die folgenden Anweisungen:

Behebung des SSH-Problems so schnell wie möglich

Dies ist eine Reihe von Anweisungen, die von der von VonC verknüpften URL abgeleitet sind. Es wurde so modifiziert, dass es so belastbar und prägnant wie möglich ist.

  • Geben Sie keine $oder mehrere Zeilen ein, die nicht mit beginnen $(dies $bedeutet, dass Sie dies in GitBash eingeben).

  • Öffnen Sie GitBash

Legen Sie Ihre globalen Informationen fest, falls Sie dies noch nicht getan haben:

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

Auf OpenSSH prüfen:

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

Sehen Sie so etwas?

  • Ja: Weiter.
  • Nein: Gehen Sie zum Abschnitt FOR THE LAZY oder folgen Sie dem verlinkten Artikel von VonC.

Überprüfen Sie, ob Sie die Schlüssel bereits generiert haben:

$ ls -a ~/.ssh/id_*

Wenn zwei Dateien vorhanden sind, können Sie den nächsten Schritt überspringen.

$ ssh-keygen

Belassen Sie alles als Standard, geben Sie eine Passphrase ein. Sie sollten jetzt Ergebnisse mit diesem Befehl sehen:

$ ls -a ~/.ssh/id_*

Suchen Sie nach einer vorhandenen Konfigurationsdatei:

$ ls -a ~/.ssh/config

Wenn Sie ein Ergebnis erhalten, überprüfen Sie diese Datei auf fehlerhafte Informationen. Wenn keine Datei vorhanden ist, gehen Sie wie folgt vor:

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

Bestätigen Sie den Inhalt:

$ cat ~/.ssh/config

Host bitbucket.org
 IdentityFile ~/.ssh/id_rsa
  • Das einzelne Leerzeichen vor "IdentityFile" ist erforderlich.

Überprüfen Sie, ob Sie den SSH-Agenten jedes Mal starten, wenn Sie GitBash ausführen:

$ cat ~/.bashrc
  • Wenn Sie eine aufgerufene Funktion sehen start_agent, ist dieser Schritt bereits abgeschlossen.
  • Wenn keine Datei vorhanden ist, fahren Sie fort.
  • Wenn es eine Datei gibt, die diese Funktion nicht enthält, befinden Sie sich in einer schwierigen Situation. Es ist wahrscheinlich sicher, daran anzuhängen (anhand der folgenden Anweisungen), aber möglicherweise nicht! Wenn Sie sich nicht sicher sind, erstellen Sie eine Sicherungskopie Ihrer .bashrc-Datei, bevor Sie die folgenden Anweisungen befolgen, oder fahren Sie mit dem Abschnitt FOR THE LAZY fort .

Geben Sie Folgendes in GitBash ein, um Ihre .bashrc-Datei zu erstellen:

$ 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

Überprüfen Sie, ob die Datei erfolgreich erstellt wurde (Ihre sollte sich nur dort unterscheiden, wo "Ihr Benutzername" angezeigt wird):

$ 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
  • Schließen Sie GitBash und öffnen Sie es erneut.
  • Sie sollten nach Ihrer Passphrase gefragt werden (nach der zuvor generierten SSH-Datei).
  • Wenn Sie nicht dazu aufgefordert werden, haben Sie entweder keine Passphrase festgelegt oder GitBash führt das .bashrc-Skript nicht aus (was seltsam wäre. Überprüfen Sie daher den Inhalt!). Wenn Sie dies auf einem Mac (OS X) ausführen, .bashrcwird es nicht standardmäßig ausgeführt - .bash_profileist. Um dies zu beheben, fügen Sie dieses Snippet in Folgendes ein .bash_profile:[[ -s ~/.bashrc ]] && source ~/.bashrc

Wenn Sie keine Passphrase eingegeben hätten, hätten Sie beim Starten von GitBash Folgendes gesehen:

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

Und Folgendes sollte Ergebnisse liefern:

$ ssh-add -l

Wenn Sie jedoch Folgendes erhalten von ssh-add -l:

Could not open a connection to your authentication agent.

Der SSH-Agent wurde nicht erzeugt, und Ihr .bashrc ist wahrscheinlich die Ursache.

Wenn beim Starten von GitBash Folgendes angezeigt wird:

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

Das heißt, Sie haben vergessen, das $ mit einem \ zu maskieren, als Sie in die Datei zurückgingen (dh die Variablen wurden erweitert). Erstellen Sie Ihre .bashrc neu, um dies zu beheben.

Stellen Sie sicher, dass der Agent ausgeführt wird und Ihre Schlüssel hinzugefügt wurden:

$ ssh-add -l

Sollte etwas Ähnliches zurückgeben:

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

Führen Sie den folgenden Befehl aus, um Ihren öffentlichen Schlüssel abzurufen:

$ cat ~/.ssh/id_rsa.pub

(Es sollte etwas zurückgeben, das mit "ssh-rsa ......" beginnt.

  • Klicken Sie auf das GitBash-Fenstersymbol
  • Klicken Sie auf Bearbeiten
  • Klicken Sie auf Markieren
  • Markieren Sie den öffentlichen Schlüssel mit der Maus (einschließlich des führenden ssh-rsaBits und des nachfolgenden == [email protected]Bits).
  • Klicken Sie mit der rechten Maustaste auf das Fenster (kopiert)
  • Fügen Sie Ihren öffentlichen Schlüssel in Notepad ein.
  • Löschen Sie alle Zeilenumbrüche so, dass es sich nur um eine einzelne Zeile handelt.
  • Drücken Sie CTRL+Adann, CTRL+Cum den öffentlichen Schlüssel erneut in Ihre Zwischenablage zu kopieren.

Konfigurieren Sie Ihren privaten Schlüssel mit BitBucket, indem Sie die folgenden Schritte ausführen:

  • Öffnen Sie Ihren Browser und navigieren Sie zur Site BitBucket.org
  • Melden Sie sich bei BitBucket.org an
  • Klicken Sie auf Ihren Avatar (oben rechts)
  • Klicken Sie auf Konto verwalten
  • Klicken Sie auf SSH-Schlüssel (unter Sicherheit im linken Menü).
  • Klicken Sie auf Schlüssel hinzufügen
  • Geben Sie Global Public Keyfür das Etikett ein
  • Fügen Sie den öffentlichen Schlüssel ein, den Sie aus dem Editor kopiert haben

Ein Global Public KeyEintrag sollte jetzt in Ihrer Schlüsselliste sichtbar sein.

  • Kehren Sie zu GitBash zurück
  • CD in das Verzeichnis, das Ihr Projekt enthält
  • Ändern Sie Ihren Ursprung in die SSH-Variante (dies ist nicht der Fall, wenn Sie die Schritte FOR THE LAZY ausgeführt haben ).

Überprüfen Sie Ihre Fernbedienungen:

$ git remote -v

Wechseln Sie zur SSH-URL:

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

Überprüfen Sie, ob die Dinge funktionieren:

$ git remote show origin

Sie sollten so etwas sehen:

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)

GETAN!

Sie können HTTPS anstelle von SSH verwenden. Sie müssen Ihr Kennwort während des Remote-Betriebs eingeben (es wird vorübergehend zwischengespeichert, nachdem Sie es einmal eingegeben haben). So können Sie HTTPS konfigurieren:

FÜR DIE Faulen

Sie sollten das SSH-Problem wie von VonC beschrieben beheben. jedoch, wenn Sie in Eile sind zu begehen und haben nicht die Werkzeuge / Zeit / Wissen einen neuen öffentlichen Schlüssel zu erzeugen , gerade jetzt , stellen Sie Ihren Ursprung auf die HTTPS - Alternative:

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

Verwenden eines GUI-Tools wie TortoiseGit oder Befehlszeilentools .

Hier ist die Dokumentation dieser alternativen Ursprungs-URL.

Befehlszeile zum Hinzufügen eines Ursprungs, falls einer nicht vorhanden ist:

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

Befehlszeile zum Ändern eines vorhandenen Ursprungs:

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

HINWEIS: Ihr Kontoname ist nicht Ihre E-Mail-Adresse.

Möglicherweise möchten Sie auch Ihre globalen Informationen festlegen:

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

Versuchen Sie es dann erneut (Sie müssen sich nicht erneut festlegen).

git push origin master
Graeme Wicksted
quelle
Echo "Host bitbucket.org" >> ~ / .ssh.config, sollte das nicht '.' ein '/' sein?
Peter
1
Manchmal kommt es vor, dass Sie alles hinzugefügt haben, was oben in erwähnt wurde, ~/.bashrcaber immer noch, wenn Sie den Befehl ausführen. ssh-all -lEs wird immer noch No agent ssh-agent /bin/bashInitializing new SSH agent...
angezeigt.
5
Eine der besten Antworten, die ich je auf
StackOverflow gefunden
1
@JGallardo - Gute Frage! Die gute Nachricht ist nein. Dies sind Variablen in Bash-Shell-Skripten - sie ähneln Umgebungsvariablen in Batch-Dateien.
Graeme Wicksted
1
Die Tatsache, dass dies nicht die akzeptierte Antwort ist, tut meinem Herzen weh. Großartige Zusammenfassung!
ruby_newbie
58

Dieser Fehler tritt auch auf, wenn Sie vergessen haben, den privaten Schlüssel hinzuzufügen ssh-agent. Tun Sie dies mit:

ssh-add ~/.ssh/id_rsa
Matthias Braun
quelle
4
Es war die Antwort in meinem Fall, etwas, das ich immer vergesse, wenn ich einen neuen Schlüssel erstelle.
Amertkara
1
Dies war, was half, nachdem ich den Beitrag oben durchgesehen hatte
Tony Merritt
es hat bei mir funktioniert :) aber du musst sicherstellen, dass du bereits einen privaten ssh-Schlüssel in deinem lokalen Verzeichnis und einen öffentlichen Schlüssel in deinem Bitbucket-Konto registriert hast
Daniel
25

Neu formatiert bedeutet, dass Sie wahrscheinlich Ihre öffentlichen und privaten SSH-Schlüssel gelöscht haben (in ~ / .ssh).

Sie müssen sie neu generieren und Ihren öffentlichen SSH- Schlüssel in Ihrem BitBucket-Profil veröffentlichen, wie unter " Verwenden des SSH-Protokolls mit Bitbucket " nach " Einrichten von SSH für Git mit GitBash " dokumentiert .

Konten-> Konten verwalten-> SSH-Schlüssel:

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

Dann:

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

Bilder aus " Integration von Mercurial / BitBucket in die JetBrains-Software "

VonC
quelle
7
Nur um ein bisschen hinzuzufügen. Stellen Sie sicher, dass Sie bei Verwendung von BitBucket (wie im Screenshot gezeigt) den SSH-Schlüssel zu den SSH-Schlüsseln Ihres Kontos hinzufügen (Konten-> Konten verwalten-> SSH-Schlüssel). Wenn Sie ihn über die Repository-Einstellungen als Bereitstellungsschlüssel hinzufügen, kann dieser Schlüssel nur für schreibgeschützte Vorgänge verwendet werden (kein Festschreiben).
welshk91
@ welshk91 Ich stimme zu. Ich habe die Antwort geändert, um detailliertere Bilder hinzuzufügen.
VonC
1
@VonC - danke, dass du das gepostet hast. Ich habe vergeblich versucht, dies auf einem Windows-Computer zum Laufen zu bringen, und dies hat endlich den Trick getan. Danke, Ben
ben18785
21

Ich habe dieses Problem gelöst, indem ich die Fernbedienung mit dem folgenden Befehl entfernt habe:

git remote remove origin

und dann versucht, Remote mit https URL anstelle von ssh hinzuzufügen

git remote add origin httpsUrl

Es werden Github-Anmeldeinformationen abgefragt. Geben Sie die Anmeldeinformationen ein und versuchen Sie dann, auf git zuzugreifen, indem Sie Folgendes verwenden:

git push origin master
Ankit Arora
quelle
1
das hat mir geholfen. Dies ist die richtige Antwort in meinem Fall. danke
binsnoel
Für mich geht das. Ich habe den Ursprung nicht entfernt, sondern nur einen neuen hinzugefügt
Shintaroid
Vielen Dank für die direkte Antwort. Arbeitete wie ein Zauber - es war genau das, wonach ich suchte.
Alexandra
4

Ich hatte das gleiche Problem. Meine SSH-Schlüssel wurden korrekt eingestellt. Ich habe dieses Problem so behoben.

Verwenden Sie nach dem Erstellen eines neuen Projekts in Bitbucket den Klon. Geben Sie den Klonbefehl in das Terminal ein und es sollte ein leeres Projekt auf Ihren Computer klonen. Danach können Sie Ihre Dateien in dieses Verzeichnis kopieren und mit dem Festschreiben und Pushing von Bitbucket beginnen.

Rafael
quelle
1
Wie merkwürdig. Ich hatte heute das gleiche Problem wie das OP, aber ohne eine Neuinstallation oder Systemänderungen vorgenommen zu haben, waren meine Schlüssel in Ordnung. Der git remote addProzess hat heute einfach nicht funktioniert - ich habe beim Versuch zu pushen den git cloneAuthentifizierungsfehler erhalten - aber das Löschen von .git und das anschließende Verwenden und erneutes Kopieren meiner Quelle (nur eine README.md) funktioniert einwandfrei. Vielen Dank, Rafael. Ohne Ihre Antwort hätte ich sicherlich nicht daran gedacht, das zu versuchen.
Kris
Ich bin froh, dass diese Lösung Ihnen geholfen hat
Rafael
1
Danke für deine Antwort. Ich konnte das Problem beheben, indem ich einfach ein neues Verzeichnis erstellte und in dieses neue Verzeichnis klonte. mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Red Cricket
2

Zwei kleine Klarstellungen, die jemandem die Verwirrung ersparen könnten, die ich durchgemacht habe:

1 - Verbindungs-URLs unterscheiden sich für HTTPS und SSH

Wenn Sie eine Verbindung über https herstellen, verwenden Sie

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

Bei einer Verbindung über SSH lautet der Kontoname jedoch immer "git".

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

Der Versuch, mit Ihrem Kontonamen eine Verbindung zu SSH herzustellen, führt zu dem Fehler, den das Originalposter erhalten hat. Auf diese Weise können Sie den Test durchführen, um eine Verbindung zu git @ herzustellen. Versuchen Sie es dann versehentlich mit Ihrem Benutzernamen und sehen Sie einen Fehler.

2 - SSH-Schlüssel über Teamkonten werden 2017 nicht mehr unterstützt

Wenn Sie SSH-Schlüssel für Teamkonten einrichten, wird empfohlen, diese auf persönliche Konten umzustellen. Ein nützlicher Tipp, um e zu vermeiden

Paulo
quelle
1

Wenn Sie SourceTree verwenden (ich verwende 2.4.1), habe ich eine einfachere Möglichkeit gefunden, einen SSH-Schlüssel zu generieren und ihn meinen Bitbucket-Einstellungen hinzuzufügen. Dies löste das Problem für mich.

  1. Gehen Sie in SourceTree zu Einstellungen.
  2. Gehen Sie zur Registerkarte Konten und wählen Sie Ihr Konto aus.
  3. Es sollte eine Option zum Generieren und Kopieren eines SSH-Schlüssels in die Zwischenablage geben.
  4. Sobald Sie das kopiert haben, gehen Sie in Ihrem Browser zu Bitbucket. Gehen Sie zu [Avatar] -> Bitbucket-Einstellungen.
  5. Gehen Sie zu SSH-Schlüssel.
  6. Klicken Sie auf Schlüssel hinzufügen
  7. Fügen Sie den kopierten Schlüssel ein.

Ich habe von Bitbucket eine Bestätigungs-E-Mail erhalten, dass meinem Konto ein SSH-Schlüssel hinzugefügt wurde.

Als Referenz können Sie unter macOS mithilfe von Terminal den folgenden Befehl verwenden, um die für Ihr Gerät generierten Schlüssel anzuzeigen. Hier wird der von Ihnen generierte Schlüssel gespeichert.

ls -la ~/.ssh

Wie bereits erwähnt, hat mir diese Dokumentation geholfen: Verwenden Sie das SSH-Protokoll mit Bitbucket Cloud

Sarah
quelle
1

Erledige das SSH wie im Atlassian-Tutorial und stelle sicher, dass der private Schlüssel im Profil und nicht im Repository eingefügt wird :)

Tyrannisieren
quelle
Könnten Sie bitte einen Link zu dem angegebenen hinzufügen Atlassian tutorial? Mit welchen Schritten wird der Schlüssel in das Profil eingefügt und woher weiß ich, ob er in das Repository eingefügt wird?
EmmanuelB
Sie ist genau hier. Wählen Sie die beste Wahl für Ihre Fallkombination! konfluenz.atlassian.com/bitbucket/…
Hector
0

Ich habe genau den gleichen Fehler für ein Repository erhalten - plötzlich waren und sind alle anderen einwandfrei, wenn ich versuche, Commits zu pushen. Das Problem schien bei der SSH-Taste zu liegen (wie Sie bereits aus den vorherigen Kommentaren wissen) - gehen View ProfileSie auf bitbucket und klicken Sie dann auf Manage Account.

Klicken Sie auf der linken Seite auf das SSH KeysVerzeichnis und fügen Sie das Verzeichnis, das Sie auf Ihrem System haben, unter ~ / .ssh / Verzeichnis hinzu.

Wenn Sie noch keine generiert haben, verwenden Sie die Anweisungen aus einem der Beiträge. Stellen Sie jedoch sicher, dass Sie entweder die Standarddatei id_dsa.pub oder eine benutzerdefinierte Datei mit dem Namen benennen, wobei Sie später die -iOption mit dem Pfad zum Schlüssel benötigen verbinden dh

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

Sobald Sie Ihren lokalen Schlüssel zu Ihrem Konto bei bitbucket hinzugefügt haben, können Sie mit Ihrem Repository interagieren.

Sebastian Sulinski
quelle
0

Ich fand, dass die Lösung, die für mich am besten funktionierte, darin bestand, den Schub in kleinere Stücke aufzuteilen.

und Entfernen der großen Screenshot-Bilddateien (10 MB +) aus den Commits

Sicherheit war am Ende kein Problem mehr über die Grenzen von Bin-Dateien

Harry Bosh
quelle
Sie erhalten den oben genannten Fehler, der vom OP festgestellt wurde, und es handelte sich nicht um ein Authentifizierungs- / Sicherheitsproblem? Es war die Größe Ihres Commits?
JohnZaj
Das ist passiert
Harry Bosh
0

Dieser Fehler tritt auch auf, wenn das Repository nicht vorhanden ist. Ich habe alle Antworten ausprobiert, bis ich sah, dass dem Repo-Namen ein Strich fehlte

Mirko
quelle
0

Bei Fehlern:

[Fehler] Repository-Zugriff verweigert. Der Zugriff über einen Bereitstellungsschlüssel ist schreibgeschützt. fatal: Konnte nicht aus dem Remote-Repository lesen. Stellen Sie sicher, dass Sie über die richtigen Zugriffsrechte verfügen und das Repository vorhanden ist.

[Fehler] schwerwiegend: Konnte nicht aus dem Remote-Repository lesen.

[Fehler] schwerwiegend: Remote-Helfer für 'https' konnte nicht gefunden werden

Ich habe folgende Schritte gelöst:

Installieren Sie zuerst diese Abhängigkeiten:

$ yum install expat expat-devel openssl openssl-devel

Dann entfernen Sie git:

$ yum remove git git-all

Erstellen und installieren Sie Git jetzt auf der letzten Version, in diesem Fall:

$ 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/

Dann für die Konfiguration:

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

Und zum Schluss so installieren:

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

das ist es, jetzt konfiguriere dein Repo mit https:

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

Wenn Sie einen SSH-Schlüssel auf Ihrem Remote-Server konfiguriert haben, müssen Sie ihn löschen.

Johan Morales
quelle
0

Ich habe diesen Fehler bekommen

Verbindung zu bitbucket.org durch Remote-Host geschlossen. fatal: Konnte nicht aus dem Remote-Repository lesen. Bitte stellen Sie sicher, dass Sie die richtigen Zugriffsrechte haben.

Dann habe ich es versucht

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

arbeitete ohne Anführungszeichen.

Vkreddy Komatireddy
quelle
0

Ich fand, dass die Git-Befehlszeile keine Lust auf meine vom Festzug generierten Schlüssel hatte (Windows 10).

Siehe meine Antwort auf Serverfault

HostMyBus
quelle
0

Ich benutze macOS und obwohl ich meinen öffentlichen Schlüssel in Bitbucket eingerichtet hatte, als ich das nächste Mal versuchte zu pushen, bekam ich

Repository-Zugriff verweigert.

fatal: Konnte nicht aus dem Remote-Repository lesen.

Stellen Sie sicher, dass Sie über die richtigen Zugriffsrechte verfügen und das Repository vorhanden ist.

Was ich tun musste, war Schritt 2. Fügen Sie den Schlüssel zum ssh-agent hinzu, wie im Setup-Handbuch für Bitbucket SSH-Schlüssel beschrieben, insbesondere im dritten Schritt:

(nur für macOS) Damit sich Ihr Computer bei jedem Neustart an Ihr Kennwort erinnert, öffnen (oder erstellen) Sie die Datei ~ / .ssh / config und fügen Sie die folgenden Zeilen zur Datei hinzu:

Host *
UseKeychain ja

Hoffe, es hilft einem Mac-Benutzer mit dem gleichen Problem.

sstauross
quelle
0

Ich hatte dieses Problem und dachte, ich wäre verrückt. Ich benutze SSH seit 20 Jahren. und Git über SSH seit 2012 ... aber warum konnte ich mein Bitbucket-Repository nicht auf meinem Heimcomputer abrufen?

Nun, ich habe zwei Bitbucket-Konten und 4 SSH-Schlüssel in meinem Agenten geladen. selbst wenn meine .ssh / config für die Verwendung des richtigen Schlüssels konfiguriert wurde. Als ssh die Verbindung initialisierte, verwendete es sie in der Reihenfolge, in die es in den Agenten geladen wurde. Also wurde ich in mein persönliches Bitbucket-Konto eingeloggt.

dann wird ein verbotener Fehler angezeigt, der versucht, das Repo abzurufen. macht Sinn.

Ich habe den Schlüssel vom Agenten entladen

ssh-add -d ~/.ssh/personal_rsa

dann könnte ich die Repos holen.

... Später fand ich heraus, dass ich es zwingen kann, nur die angegebene Identität zu verwenden

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

Ich wusste nichts über diese letzte Option IdentitiesOnly

aus der Bitbucket-Dokumentation selbst

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

Mathieu J.
quelle
-1

Probier's einfach

git remote add origin <HTTP URL>
Ashok Joshi
quelle
1
Wir geben nicht gerne jedes Mal Benutzername / Passwort ein, wenn wir Bitbucket / Github / etc /
Mathieu J.