Nachdem ich mein Repo erfolgreich von Heroku geklont und eine weitere Fernbedienung hinzugefügt hatte
1/ git clone [email protected]:[APP].git
2/ git remote add bitbucket ssh://[email protected]/[ACCOUNT]/[REPO].git
3/ git push bitbucket master
Ich erhalte diesen Fehler immer noch, nachdem ich Zeile (3) ausgeführt oder SourceTree verwendet habe
conq: repository access denied. access via a deployment key is read-only.
Erstens verstehe ich nicht, was diese Botschaft in der Praxis bedeutet. Und das ist eine Schande.
Ich habe ein SSH-Schlüsselpaar erstellt und zu Heroku hinzugefügt:
ssh-keygen -t rsa
heroku keys:add ./id_rsa.pub
Ich habe meinen Schlüssel auch im Abschnitt Bereitstellungsschlüssel in BitBucket hinzugefügt. Aber mir muss etwas fehlen. Diese Frage ist nicht aus Faulheit, ich habe verschiedene Dokumente gelesen, einschließlich BitBuckets-Anleitungen. Aber es kommt immer noch nicht um dieses Problem herum.
Dieser Beitrag bezieht sich auf Kann ich mein Heroku Git Repo in Bitbuket importieren? und wie?
ZUSÄTZLICHE FAKTEN:
ssh -T [email protected]
conq: authenticated via a deploy key.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
$ ssh -v [email protected]
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/joel/.ssh/config
debug1: Applying options for bitbucket.org
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to bitbucket.org [207.223.240.181] port 22.
debug1: Connection established.
debug1: identity file /Users/joel/.ssh/id_rsa type 1
debug1: identity file /Users/joel/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'bitbucket.org' is known and matches the RSA host key.
debug1: Found key in /Users/joel/.ssh/known_hosts:5
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/joel/.ssh/id_rsa
debug1: Remote: Forced command: conq deploykey:13907
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: read PEM private key done: type RSA
debug1: Remote: Forced command: conq deploykey:13907
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
Authenticated to bitbucket.org ([207.223.240.181]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
PTY allocation request failed on channel 0
Sieht so aus, als wäre alles in Ordnung.
Antworten:
Die erste Verwirrung auf meiner Seite war, wo genau SSH-Schlüssel in BitBucket gesetzt werden sollten.
Ich bin neu in BitBucket und habe einen Bereitstellungsschlüssel festgelegt, der nur Lesezugriff ermöglicht .
Stellen Sie also sicher, dass Sie Ihre Einstellungen
rsa pub key
in Ihren BitBucket-Konten vornehmen .Klicken Sie auf Ihren BitBucket-Avatar und wählen Sie Bitbucket-Einstellungen (
Konto verwalten). Dort können Sie SSH-Schlüssel einstellen .Ich habe einfach den Bereitstellungsschlüssel gelöscht , ich brauche vorerst keinen. Und es hat funktioniert
quelle
Jetzt befindet sich die SSH-Option unter den Sicherheitseinstellungen
Klicken Sie auf Ihren Avatar -> Bitbucket-Einstellungen -> SSH-Schlüssel -> Schlüssel hinzufügen
Fügen Sie Ihren öffentlichen Schlüssel ein
quelle
Sie müssen Ihren Schlüssel zu Ihrem Profil und NICHT zu einem bestimmten Repository hinzufügen . Folgen Sie diesen Anweisungen : https://community.atlassian.com/t5/Bitbucket-questions/How-do-I-add-an-SSH-key-as-opposed-to-a-deployment-keys/qaq-p/413373
quelle
Bereitstellungsschlüssel sind schreibgeschützt. Um den Schreibzugriff zu aktivieren, müssen Sie:
Entfernen Sie diesen Bereitstellungsschlüssel aus Ihren Repository-Einstellungen. Mit diesem Schlüssel können Sie sowieso nicht in dieses Repo schreiben.
Gehen Sie zu "Avatar -> Einstellungen -> SSH-Schlüssel" und fügen Sie denselben Schlüssel hinzu
Versuchen Sie nun zu drücken, um den Zweig zu entfernen
Sie konnten zuvor in Repositorys schreiben, dies ist jedoch eine Änderung in BitBucket, bei der Sie nicht mehr mit dem Bereitstellungsschlüssel schreiben können.
quelle
'Bereitstellungsschlüssel' ist nur für den schreibgeschützten Zugriff vorgesehen. Das Folgende ist ein guter Weg, um dies durchzuarbeiten.
quelle
Sie müssen zuerst den Bereitstellungsschlüssel löschen, wenn Sie denselben Schlüssel unter Konto-SSH-Schlüssel verwalten hinzufügen möchten.
quelle
Someone has already registered this as a deploy key.
TLDR: ssh-add ~ / .ssh / yourkey
Ich habe gerade dieses Problem durchgearbeitet.
Und keine der anderen Antworten half.
Ich hatte eine ./ssh/config mit den richtigen Sachen, auch ein früheres Repository, das gut funktionierte (gleiches Bitbucket-Konto, gleicher Schlüssel). Dann habe ich einen deploy_key generiert und danach ein neues Repository erstellt.
Danach konnte das neue Repo nicht mehr geklont werden.
Ich wünschte, ich wüsste, wie / warum der SSH-Agent dies vermasselte, aber das Hinzufügen des Schlüssels löste es. Ich meine, den Schlüssel in meinem lokalen Ubuntu hinzuzufügen, nicht in Bitbucket Admin. Der Befehl ist gerecht
Hoffe das hilft jemandem.
quelle
Dies geschah, als ich versuchte, einen Bereitstellungsschlüssel zu verwenden, weil ich genau das wollte.
Ich konnte eine Verbindung über herstellen
ssh -T [email protected]
und es würde mir sagen, dass ich Zugriff hatte, um das gewünschte Repository zu lesen, aber esgit clone
würde fehlschlagen.Löschen
~/.ssh/known_hosts
, Generieren eines neuen Schlüssels überssh-keygen
, Hinzufügen dieses neuen Schlüssels zu Bitbucket und erneutes Versuchen, das Problem für mich zu beheben.quelle
Ich möchte Folgendes noch einmal betonen:
Es hat ewig gedauert, bis mir klar wurde, dass es selbst nach dem Lesen der Antworten hier nicht geklickt hat.
quelle
Wählen oder erstellen Sie zuerst den Schlüssel, den Sie zum Drücken auf Bitbucket verwenden möchten. Angenommen, der öffentliche Schlüssel befindet sich bei
~/.ssh/bitbucket.pub
~/.ssh/config
:quelle
Vor kurzem stand ich vor dem gleichen Problem. Ich habe folgenden Fehler erhalten:
Repository-Zugriff verweigert. Der Zugriff über einen Bereitstellungsschlüssel ist schreibgeschützt.
Sie können zwei Arten von SSH-Schlüsseln verwenden:
Ich habe einfach meinen Repository-SSH-Schlüssel entfernt und meinem Konto einen neuen SSH-Schlüssel hinzugefügt, und es hat gut funktioniert.
Ich hoffe es hilft jemandem. Prost
quelle
Ich hatte das gleiche Problem, das Kabir Sarin hatte. Die Lösung bestand darin, das Repo über SSH zu klonen, anstatt die https-URL zu verwenden. Das hat mir und hoffentlich auch anderen geholfen:
quelle
Schritte:
Erstellen Sie SSH-Schlüssel auf dem Quellserver
ssh-keygen
Cat and copy id_rsa.pub befindet sich im Verzeichnis ~. / SSsh
Überprüfen Sie, ob es funktioniert, indem Sie den folgenden Befehl auf dem Quellserver ausführen
git remote show origin
Wenn das Protokoll beim Abrufen und Pushen vom Quellserver 'https' lautet, müssen Sie es in 'git + ssh' ändern, indem Sie den folgenden Befehl ausführen
git remote set-url origin git+ssh://<bitbucketaccount>@bitbucket.org/<accountname>/repo.git
Überprüfen Sie, ob Sie zum Repo pushen können.
Erledigt!
quelle
Alles was Sie brauchen - fügen Sie einen weiteren Schlüssel hinzu und verwenden Sie ihn.
Wie ich den ersten Schlüssel gefunden habe - immer den Bereitstellungsschlüssel.
quelle
Manchmal funktioniert es nicht, weil Sie manuell einen anderen Schlüssel für Bitbucket in festgelegt haben
~/.ssh/config
.quelle
Schritt 1: Schlüssel generieren
ssh-keygen
dies ein. Sie werden aufgefordert, den Speicherort für den Schlüssel einzugeben, den Sie eingeben können/Users/[machinename]/.ssh/[keyname]
Schritt 2: Drücken der Tasten an die entsprechenden Stellen [Mac- und Remote-Konten, z. B. Github, Bitbucket, Gitlab usw.]
ssh-add -K ~/.ssh/[keyname]
terminal ein, um Ihren privaten Schlüssel zum Mac hinzuzufügenpbcopy < ~/.ssh/[keyname].pub
um den öffentlichen Schlüssel in die Zwischenablage zu kopierenquelle
Hier ist der vollständige Code zum Klonen aller Repos eines bestimmten BitBucket-Teams / Benutzers
Weitere Informationen: https://thepythoncoding.blogspot.com/2019/06/python-script-to-clone-all-repositories.html
quelle
für diesen Fehler: conq: Repository-Zugriff verweigert. Der Zugriff über einen Bereitstellungsschlüssel ist schreibgeschützt.
Ich ändere beispielsweise den Namen meines Schlüssels
Ich arbeite an meinem eigenen Schlüssel für Bitbucket
quelle