J'essaie de pousser mon projet sur mon bitbucket et de le déranger depuis environ 4 jours, en parcourant d'innombrables problèmes/pages/dépannage/tutoriels. Je suis perdue et très frustrée. Je l'ai déjà fait auparavant, mais sur différents ordinateurs ... en tout cas voici le code/réponse que je reçois
~/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
Je suis sur un Mac en cours d'exécution 10.8.4.
Donc un peu de progrès a été fait, au début il n’y avait pas de dossier .ssh, alors j’ai créé de cette façon au début, il n’y avait pas de fichier known_hosts alors j’ai lancé
ssh -T [email protected]
J'ai choisi oui et cela a créé un fichier known_hosts et quand j'ai essayé de pousser à nouveau, j'ai eu:
~/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.
Mon dossier .ssh est 700 et les clés à l'intérieur sont toutes 600.
Vous pouvez définir le fichier indicateur IdentityFile dans le fichier ~/.ssh/config comme suit:
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
Quand tu cours
ssh [email protected]
le client ssh vous permet de sélectionner un fichier dans lequel l'identité (clé privée) pour l'authentification RSA ou DSA est lue.
Client SSH à utiliser avec la clé privée donnée (fichier d'identité)
Cela pourrait faire reculer les administrateurs système dans l’horreur, mais après avoir souffert de ce problème (Windows), j’ai abandonné le SSH et suis retourné à HTTPS.
Lorsque vous ajoutez le référentiel distant à Git pour la première fois, remplacez la référence SSH '[email protected]...
' par l'URL HTTPS 'https://<username>@bitbucket.org
'.
Vous devez taper votre mot de passe à chaque fois mais, particulièrement sous Windows où SSH n'est pas aussi communément disponible qu'avec la famille * nix, je considère cela comme un inconvénient mineur par rapport aux maux de tête de SSH.
Vous utilisez peut-être ssh en tant qu’URL d’origine. Essayez de supprimer le ssh Origin comme si
git remote rm Origin
Ajoutez ensuite une nouvelle origine avec l’URL HTTPS et réessayez.
git remote add Origin https://[email protected]/SOMETHING/SOMETHING.git
git Push -u Origin master
Assurez-vous de coller votre URL à partir de bitbucket en tant qu’origine.
Dans mon cas, sur la nouvelle machine Ubuntu 16, il me manquait des fichiers dans le dossier ~/.ssh
.
~/.ssh
ssh-keygen
et nommez votre fichier i.e. id_rsa
cat ~/.ssh/id_rsa.pub | xclip -sel clip
xclip
juste apt-get install xclip
:)Add key
et collez la clé dans le presse-papiers.Magic - ça marche maintenant :)
Une solution plus durable consiste à éditer .bashrc
(par exemple vi ~/.bashrc
) puis à y ajouter la ligne suivante (remplacer le nom de la clé)
ssh-add ~/.ssh/YOUR_KEY
Cela chargera la clé automatiquement lorsque vous démarrez le shell
J'ai rencontré les mêmes problèmes sous Linux (Ubuntu).
Je l'ai résolu en utilisant la configuration dans git
:
git config --global user.name "Your Name"
git config --global user.email [email protected]
Imprimer la clé publique à l'aide de cat et de la clé SSH sur bitbucket.org:
$ cat ~/.ssh/id_rsa.pub
Ajouter Bitbucket et remonter le référentiel:
git remote add Origin [email protected]:<username>/your repository name.git
git Push -u Origin --all
C'est tout!
Après avoir configuré git avec git config --global user.name "My Name"
et git config --global user.email [email protected]
, j'avais toujours des problèmes avec l'erreur Permission Denied, (publickey). Pour résoudre ce problème, j’ai d’abord généré un nouveau jeton ssh avec
ssh-keygen
et copié avec
pbcopy < ~/.ssh/YOUR_KEY
Après cela, je suis allé sur bitbucket.com pour l'ajouter en tant que nouvelle clé SSH dans mes paramètres. Ensuite, je suis retourné à mon terminal pour ajouter la nouvelle clé avec
ssh-add ~/.ssh/YOUR_KEY.
Le gros problème que je rencontrais, c'est que j'ai raté la commande critique ssh-add [key]
.
Vérifier la clé SSH existante
ls -al ~/.ssh
Copier la clé SSH
cat ~/.ssh/id_rsa.pub | pbcopy
Ajoutez la clé SSH copiée à "Paramètres Bitbucket", "Sécurité", "Clés SSH".
J'ai eu un problème similaire avec BitBucket. dans mon cas, cela ne s'est résolu qu'après que j'ai découvert que je devrais retirer Sudo de la commande git clone!
Selon Attlassian :
Vous ne devriez pas utiliser Sudo lorsque vous clonez, poussez ou tirez parce que ssh-agent s'exécute au niveau utilisateur, pas au niveau racine.
Cela peut paraître évident, mais j'ai passé pas mal de temps dessus.
Vérifier la destination lors de l'exécution de git remote -v
Dans mon cas, les clés ssh étaient parfaitement configurées, mais le résultat de cette commande était:
Origin [email protected]:USERNAME/REPOSITORY.git
(notez legetnotgit)
et pas
Origin [email protected]:USERNAME/REPOSITORY.git
Encore une fois, c’était un cas très particulier, mais assurez-vous de vérifier soigneusement les chaînes de ce système si vous rencontrez des problèmes.
Vous pouvez résoudre ce problème avec les commandes suivantes:
git remote set-url Origin [email protected]:USERNAME/REPOSITORY.git
J'ai contourné un problème similaire dans lequel j'avais déjà utilisé HTTPS pour accéder au référentiel et que je devais passer à SSH en définissant l'URL comme suit;
git remote set-url Origin ssh://[email protected]/...
Sous Windows, @efesaid answer travaillait à la résolution de problèmes liés au test de connexion ssh. En passant, vous pouvez ajouter un -v pour voir quelles clés (par nom) sont tentées et pourquoi la connexion a échoué.
Cependant, lorsque vous passez à bitbucket en utilisant [email protected]: utilisateur/repo.git, il semble que l'hôte ne soit pas précisément bitbucket.org, de sorte que je rencontrais toujours des problèmes d'autorisation refusés. Je les ai résolus en (re) nommant ma clé à id_rsa (c'est le nom de la clé qui a été essayée dans le test ssh).
Cela fonctionne si vous avez une seule clé RSA. Pour plusieurs clés, peut-être que l'hôte dans le fichier de configuration doit être
bitbucket.org:username
mais je ne suis pas sûr que ce soit unde
Je pense que les instructions de bitbucket sont les meilleures. Vérifiez si ssh est installé et si non installez-le
krasen@krasen-Lenovo-Y50-70:~$ 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]] [user@]hostname [command]
krasen@krasen-Lenovo-Y50-70:~$ ls -a ~/.ssh
. .. google_compute_engine google_compute_engine.pub identity identity.pub known_hosts
krasen@krasen-Lenovo-Y50-70:~$ 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 krasen@krasen-Lenovo-Y50-70
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| xx x |
| xxxxx |
| xxxxxxxxx |
| .xxxxxxxx |
| xxxxx |
| xxxxxxxxxxxx|
| xxxxxxxxxxxxx|
| xxxxxxxxxxx |
+-----------------+
krasen@krasen-Lenovo-Y50-70:~$ 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
krasen@krasen-Lenovo-Y50-70:~$ ssh-agent /bin/bash
krasen@krasen-Lenovo-Y50-70:~$ ps -e | grep [s]sh-agent
26503 ? 00:00:00 ssh-agent
krasen@krasen-Lenovo-Y50-70:~$ ssh-add ~/.ssh/id_rsa
Identity added: /home/krasen/.ssh/id_rsa (/home/krasen/.ssh/id_rsa)
krasen@krasen-Lenovo-Y50-70:~$ 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)
krasen@krasen-Lenovo-Y50-70:~$ cat ~/.ssh/id_rsa.pub
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
obtenir cette clé et l'ajouter en tant que clé dans les paramètres de bitbucket
Assurez-vous que vous avez basculé sur le bon utilisateur sur le terminal.
Dans mon cas, l'utilisateur root n'était pas celui qui a des clés ssh ajoutées dans le panneau de configuration de bitbucket. L'exécution de git avec Sudo le fait fonctionner à partir de l'utilisateur root et mon propre utilisateur est celui qui a les clés ajoutées.
Dans mon cas, l'ajout de la clé ssh du répertoire a résolu le problème.
~/.ssh/id_rsa.pub
sur bitbucket.org . Je l'ai nommé aussi id_rsa.pub sur le site Web.
Au début, j'ai ajouté une autre clé créée uniquement pour bitbucket et nommée comme suit. Les premières actions à distance ont fonctionné, mais après quelques jours, la demande a été refusée.
Mon problème était lié aux autorisations.
Mon répertoire de projet appartenait à root
, mais j'étais connecté en tant que ubuntu
. Je voudrais obtenir PERMISSION DENIED
si je tapais dans une commande git, par exemple. git pull Origin master
, alors j'ai utilisé Sudo git pull Origin master
.
J'avais enregistré la clé SSH de ubuntu
à partir de /home/ubuntu/.ssh/id_rsa.pub
avec BitBucket.
Cependant, j'utilisais Sudo
. Donc, la clé SSH utilisée était en fait /home/root/.ssh/id_rsa.pub
, ce qui était différent de ce que BitBucket avait.
Solution pour mon cas
chown -R username_here:username_here project/folder/here
Maintenant, cela devrait fonctionner si vous ne pré-ajoutez pas Sudo
OUdonne la clé de BitBucket root