Après avoir cloné avec succès mon référentiel de heroku et ajouté une autre télécommande
1/ git clone [email protected]:[APP].git
2/ git remote add bitbucket ssh://[email protected]/[ACCOUNT]/[REPO].git
3/ git Push bitbucket master
Je reçois toujours cette erreur après avoir exécuté line (3) ou utilisé SourceTree
conq: repository access denied. access via a deployment key is read-only.
D'abord, je ne comprends pas ce que ce message signifie dans la pratique. Et c'est dommage.
J'ai créé la paire de clés ssh et ajouté à heroku:
ssh-keygen -t rsa
heroku keys:add ./id_rsa.pub
J'ai également ajouté ma clé dans la section des clés de déploiement de BitBucket. Mais je dois manquer quelque chose. Cette question n’est pas due à la paresse, j’ai lu divers documents, dont des guides BitBuckets. Mais cela ne résout toujours pas le problème.
Cet article est lié à Puis-je importer mon dépôt Heroku Git dans Bitbuket? Et comment?
FAITS ADDITIONNELS:
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
On dirait que tout va bien.
La première confusion de mon côté a été de savoir exactement où placer les clés SSH dans BitBucket.
Je suis nouveau sur BitBucket et je définissais une clé de déploiement qui donne un accès en lecture uniquement.
Assurez-vous donc que vous définissez votre rsa pub key
dans vos paramètres de compte BitBucket .
Cliquez sur votre avatar BitBucket et sélectionnez Paramètres Bitbucket (Gérer son compte). Là, vous pourrez définir des clés SSH .
J'ai simplement supprimé la clé de déploiement , je n'en ai pas besoin pour l'instant. Et ça a marché
Maintenant, l'option SSH est sous les paramètres de sécurité
Cliquez sur votre avatar -> Paramètres Bitbucket -> Clé SSH -> Ajouter une clé
Collez votre clé publique
vous devez ajouter votre clé à votre profil et PAS à un référentiel spécifique. suivez ceci: https://community.atlassian.com/t5/Bitbucket-questions/Comment -p/41337
Les clés de déploiement sont en lecture seule. Pour activer l'accès en écriture, vous devez:
Supprimez cette clé de déploiement des paramètres de votre référentiel. De toute façon, vous ne pourrez pas écrire dans ce dépôt avec cette clé.
Allez dans "Avatar -> Paramètres -> Clés SSH" et ajoutez la même clé
Maintenant, essayez de pousser pour supprimer la branche
Vous pouviez écrire dans des référentiels auparavant, mais il s’agit d’un changement dans BitBucket qui ne vous permet plus d’écrire avec la clé de déploiement.
La "clé de déploiement" ne concerne que l'accès en lecture seule. Suivre est un bon moyen de travailler à travers cela.
Vous devez d'abord supprimer la clé de déploiement si vous souhaitez ajouter la même clé sous Gérer la clé SSH du compte.
TLDR: ssh-add ~/.ssh/votre clé
Je viens de résoudre ce problème.
Et aucune des autres réponses n'a aidé.
J'ai eu un ./ssh/config avec tout ce qui est correct, ainsi qu'un référentiel précédent fonctionnant correctement (même compte bitbucket, même clé). Ensuite, j'ai généré une clé deploy_key, puis un nouveau référentiel.
Après cela, impossible de cloner le nouveau repo.
J'aurais aimé savoir comment/pourquoi l'agent ssh faisait des bêtises, mais l'ajout de la clé l'a résolu. Je veux dire en ajoutant la clé dans mon Ubuntu local, pas dans bitbucket admin. La commande est juste
~/.ssh$ ssh-add myregualrkey
J'espère que ça aide quelqu'un.
C'est ce qui s'est passé lorsque j'ai essayé d'utiliser une clé de déploiement parce que c'est exactement ce que je voulais.
Je pouvais me connecter via ssh -T [email protected]
et il me dirait que j'avais accès à la base de données pour lire le référentiel que je voulais, mais git clone
échouait.
Effacer ~/.ssh/known_hosts
, générer une nouvelle clé via ssh-keygen
, ajouter cette nouvelle clé à bitbucket et réessayer, corrige-le pour moi.
Je voudrais insister de nouveau sur les points suivants:
Il m'a fallu un bon bout de temps pour réaliser que même après avoir lu les réponses, cela ne cliquait pas.
Récemment, j'ai rencontré le même problème. J'ai eu l'erreur suivante:
accès au référentiel refusé. L'accès via une clé de déploiement est en lecture seule.
Vous pouvez avoir deux types de clés SSH:
J'ai simplement retiré ma clé SSH de référentiel et ajouté une nouvelle clé SSH à mon compte, et cela a bien fonctionné.
J'espère que ça aide quelqu'un. À votre santé
Pas:
Créer des clés SSH sur le serveur source
ssh-keygen
Cat et copy id_rsa.pub situés sous le répertoire ~./Ssh
Vérifiez si cela fonctionne en exécutant la commande ci-dessous sur le serveur source
git remote show Origin
Pour récupérer et envoyer depuis le serveur source, si le protocole est "https", vous devez le changer en "git + ssh" en exécutant la commande ci-dessous.
git remote set-url Origin git+ssh://<bitbucketaccount>@bitbucket.org/<accountname>/repo.git
Vérifiez si vous pouvez faire le Push to the repo.
Terminé!
Commencez par choisir ou créer la clé que vous souhaitez utiliser pour transmettre à Bitbucket. Disons que sa clé publique est à ~/.ssh/bitbucket.pub
~/.ssh/config
: Host bitbucket.org
IdentityFile ~/.ssh/bitbucket
Processus en deux étapes pour pouvoir tirer
Étape 1: Générez la clé ssh (publique et privée) sur mac
Étape 2: Mettez la clé privée dans mac et la clé publique dans le site Web de git
Les étapes détaillées ci-dessous sont destinées aux utilisateurs de Mac.
Étape 1: Génération de clés
ssh-keygen
cela vous demandera d'entrer l'emplacement de stockage pour la clé, vous pouvez taper /Users/[machinename]/.ssh/[keyname]
Étape 2: transmission des clés aux emplacements appropriés [comptes mac et distants, tels que Github, bitbucket, gitlab, etc.]
ssh-add -K ~/.ssh/[keyname]
dans le terminal pour ajouter votre clé privée au Macpbcopy < ~/.ssh/[keyname].pub
pour copier la clé publique dans le presse-papierFait, maintenant vous pouvez pousser tirer.
J'ai eu le même problème que Kabir Sarin avait. La solution consistait à cloner le référentiel via SSH au lieu d'utiliser l'URL https. C'est donc ce qui m'a aidé, et j'espère que d'autres:
git clone [email protected]:{accountName}/{repoName}.git
Tout ce dont vous avez besoin - ajoutez une autre clé et utilisez-la.
Comme j'ai trouvé la première clé - toujours clé de déploiement.
Parfois, cela ne fonctionne pas car vous définissez manuellement une autre clé pour bitbucket dans ~/.ssh/config
.