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.
Antworten:
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:
Auf OpenSSH prüfen:
Sehen Sie so etwas?
Überprüfen Sie, ob Sie die Schlüssel bereits generiert haben:
Wenn zwei Dateien vorhanden sind, können Sie den nächsten Schritt überspringen.
Belassen Sie alles als Standard, geben Sie eine Passphrase ein. Sie sollten jetzt Ergebnisse mit diesem Befehl sehen:
Suchen Sie nach einer vorhandenen Konfigurationsdatei:
Wenn Sie ein Ergebnis erhalten, überprüfen Sie diese Datei auf fehlerhafte Informationen. Wenn keine Datei vorhanden ist, gehen Sie wie folgt vor:
Bestätigen Sie den Inhalt:
Überprüfen Sie, ob Sie den SSH-Agenten jedes Mal starten, wenn Sie GitBash ausführen:
start_agent
, ist dieser Schritt bereits abgeschlossen.Geben Sie Folgendes in GitBash ein, um Ihre .bashrc-Datei zu erstellen:
Überprüfen Sie, ob die Datei erfolgreich erstellt wurde (Ihre sollte sich nur dort unterscheiden, wo "Ihr Benutzername" angezeigt wird):
.bashrc
wird es nicht standardmäßig ausgeführt -.bash_profile
ist. 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:
Und Folgendes sollte Ergebnisse liefern:
Wenn Sie jedoch Folgendes erhalten von
ssh-add -l
:Der SSH-Agent wurde nicht erzeugt, und Ihr .bashrc ist wahrscheinlich die Ursache.
Wenn beim Starten von GitBash Folgendes angezeigt wird:
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:
Sollte etwas Ähnliches zurückgeben:
Führen Sie den folgenden Befehl aus, um Ihren öffentlichen Schlüssel abzurufen:
(Es sollte etwas zurückgeben, das mit "ssh-rsa ......" beginnt.
ssh-rsa
Bits und des nachfolgenden== [email protected]
Bits).CTRL+A
dann,CTRL+C
um 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:
Global Public Key
für das Etikett einEin
Global Public Key
Eintrag sollte jetzt in Ihrer Schlüsselliste sichtbar sein.Überprüfen Sie Ihre Fernbedienungen:
Wechseln Sie zur SSH-URL:
Überprüfen Sie, ob die Dinge funktionieren:
Sie sollten so etwas sehen:
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:
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:
Befehlszeile zum Ändern eines vorhandenen Ursprungs:
HINWEIS: Ihr Kontoname ist nicht Ihre E-Mail-Adresse.
Möglicherweise möchten Sie auch Ihre globalen Informationen festlegen:
Versuchen Sie es dann erneut (Sie müssen sich nicht erneut festlegen).
quelle
~/.bashrc
aber immer noch, wenn Sie den Befehl ausführen.ssh-all -l
Es wird immer nochNo agent
ssh-agent /bin/bash
Initializing new SSH agent...
Dieser Fehler tritt auch auf, wenn Sie vergessen haben, den privaten Schlüssel hinzuzufügen
ssh-agent
. Tun Sie dies mit:quelle
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:
Dann:
Bilder aus " Integration von Mercurial / BitBucket in die JetBrains-Software "
quelle
Ich habe dieses Problem gelöst, indem ich die Fernbedienung mit dem folgenden Befehl entfernt habe:
und dann versucht, Remote mit https URL anstelle von ssh hinzuzufügen
Es werden Github-Anmeldeinformationen abgefragt. Geben Sie die Anmeldeinformationen ein und versuchen Sie dann, auf git zuzugreifen, indem Sie Folgendes verwenden:
quelle
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.
quelle
git remote add
Prozess hat heute einfach nicht funktioniert - ich habe beim Versuch zu pushen dengit clone
Authentifizierungsfehler 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.mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Benötigen Sie nur eine Konfigurationsdatei unter ~ / .ssh Verzeichnisreferenz
: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html Fügen Sie
die folgende Konfiguration in die Konfigurationsdatei ein
quelle
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
Bei einer Verbindung über SSH lautet der Kontoname jedoch immer "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
quelle
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.
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.
Wie bereits erwähnt, hat mir diese Dokumentation geholfen: Verwenden Sie das SSH-Protokoll mit Bitbucket Cloud
quelle
Erledige das SSH wie im Atlassian-Tutorial und stelle sicher, dass der private Schlüssel im Profil und nicht im Repository eingefügt wird :)
quelle
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?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 Profile
Sie auf bitbucket und klicken Sie dann aufManage Account
.Klicken Sie auf der linken Seite auf das
SSH Keys
Verzeichnis 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
-i
Option mit dem Pfad zum Schlüssel benötigen verbinden dhSobald Sie Ihren lokalen Schlüssel zu Ihrem Konto bei bitbucket hinzugefügt haben, können Sie mit Ihrem Repository interagieren.
quelle
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
quelle
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
quelle
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:
Dann entfernen Sie git:
Erstellen und installieren Sie Git jetzt auf der letzten Version, in diesem Fall:
Dann für die Konfiguration:
Und zum Schluss so installieren:
das ist es, jetzt konfiguriere dein Repo mit https:
Wenn Sie einen SSH-Schlüssel auf Ihrem Remote-Server konfiguriert haben, müssen Sie ihn löschen.
quelle
Ich habe diesen Fehler bekommen
Dann habe ich es versucht
arbeitete ohne Anführungszeichen.
quelle
Ich fand, dass die Git-Befehlszeile keine Lust auf meine vom Festzug generierten Schlüssel hatte (Windows 10).
Siehe meine Antwort auf Serverfault
quelle
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
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:
Hoffe, es hilft einem Mac-Benutzer mit dem gleichen Problem.
quelle
Dies wird wahrscheinlich durch mehrere SSH-Schlüssel im SSH-Agenten (und / oder BitBucket) verursacht. Überprüfen Sie die Atlassian-Dokumentation auf die Problemumgehung
quelle
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
Ich wusste nichts über diese letzte Option
IdentitiesOnly
aus der Bitbucket-Dokumentation selbst
https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/
quelle
Probier's einfach
quelle