it-roy-ru.com

Невозможно отправить в битбакет, в доступе отказано (publickey)

Я пытаюсь выдвинуть свой проект на свое битовое ведро, возиться с этим около 4 дней, перелистывая бесчисленные решения проблем/страницы/устранение неполадок/учебники. Я в растерянности и очень расстроен. Я делал это раньше, но на разных компьютерах ... в любом случае вот код/​​ответ, который я получаю

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

Я на Mac работает 10.8.4.

Таким образом, был достигнут небольшой прогресс, изначально не было папки .ssh, поэтому я создал этот путь в самом начале, не было файла known_hosts, поэтому я запустил

ssh -T [email protected]

Я выбрал yes, и это создало файл known_hosts, и когда я снова попытался нажать Push, я получил:

~/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.

Моя папка .ssh - 700, а все ключи внутри - 600.

41
josephleon

Вы можете установить файл флага IdentityFile в файле ~/.ssh/config следующим образом:

Host bitbucket.org
  IdentityFile ~/.ssh/id_rsa

Когда ты бежишь 

ssh [email protected]

клиент ssh позволяет вам выбрать файл, из которого будет считываться идентификационный номер (закрытый ключ) для аутентификации RSA или DSA.

Клиент SSH будет использовать данный закрытый ключ (файл идентификации)

31
cyb0k

Это может заставить сисадминов отскочить в ужасе, но после этой проблемы (Windows) я отказался от SSH и вернулся к HTTPS.

При первом добавлении удаленного репозитория в Git замените ссылку SSH «[email protected]» на HTTPS URL «https://<username>@bitbucket.org». 

Вы должны вводить свой пароль каждый раз, но, особенно в Windows, где SSH не так широко доступен, как в семействе * nix, я считаю это незначительным неудобством по сравнению с головными болями SSH.

14
AJR

Возможно, вы используете ssh в качестве URL-адреса git Origin. Попробуй удалить ssh Origin вот так

git remote rm Origin

Затем добавьте новый Origin с URL-адресом HTTPS и повторите попытку.

git remote add Origin https://[email protected]/SOMETHING/SOMETHING.git
git Push -u Origin master

Убедитесь, что вы вставили свой URL из bitbucket как Origin.

10
Ronny Kibet

В моем случае на новой машине с Ubuntu 16 мне не хватало файлов в папке ~/.ssh, так что сработало: 

  1. Перейти в папку ~/.ssh
  2. Запустите ssh-keygen и назовите свой файл, т.е. id_rsa
  3. Запустите cat ~/.ssh/id_rsa.pub | xclip -sel clip
    Если вы пропустите xclip просто apt-get install xclip :)
  4. Перейдите (в URL-адресе измените ИМЯ ПОЛЬЗОВАТЕЛЯ на свое имя пользователя Bitbucket :)) https://bitbucket.org/account/user/USERNAME/ssh-keys/
  5. Нажмите Add key и вставьте ключ из буфера обмена

Магия - теперь работает :)

9
pbaranski

Более устойчивое решение - отредактировать .bashrc (например, vi ~/.bashrc), а затем добавить в него следующую строку (заменить имя ключа)

ssh-add ~/.ssh/YOUR_KEY

Это автоматически загрузит ключ при запуске оболочки

7
iTech

Я столкнулся с такими же проблемами в Linux (Ubuntu).

Я решил это с помощью настройки в git

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

Печать открытого ключа с помощью cat и SSH-ключа на bitbucket.org: 

$ cat ~/.ssh/id_rsa.pub

Добавляем Bitbucket и поднимаем репозиторий:

git remote add Origin [email protected]:<username>/your repository name.git
git Push -u Origin --all

Это все!

4
Rafiqul

После настройки git с помощью git config --global user.name "My Name" и git config --global user.email [email protected] у меня все еще были проблемы с ошибкой Permission Denied (publickey). Чтобы решить эту проблему, я сначала сгенерировал новый токен SSH с

ssh-keygen

и скопировал его с

pbcopy < ~/.ssh/YOUR_KEY

После этого я пошел на bitbucket.com, чтобы добавить его в качестве нового ключа SSH в моих настройках. Затем я вернулся в свой терминал, чтобы добавить новый ключ с

ssh-add ~/.ssh/YOUR_KEY.

Большая проблема, с которой я столкнулся, заключалась в том, что я пропустил критическую команду ssh-add [key].

3
keala

Проверьте существующий ключ SSH 

ls -al ~/.ssh

Скопируйте ключ SSH

cat ~/.ssh/id_rsa.pub | pbcopy

Добавьте скопированный ключ SSH в «Настройки Bitbucket», «Безопасность», «Ключи SSH».

1
Michael Stokes

У меня была похожая проблема с BitBucket. в моем случае это исправлено только после того, как я узнал, что должен удалить Sudo из команды git clone!

По словам Аттлассиан :

Вы не должны использовать Sudo при клонировании, выталкивании или вытягивании, потому что ssh-agent запускается на уровне пользователя, а не на уровне root.

1
Iman Sedighi

Это может быть очевидно, но я потратил немало времени на это.

Проверить место назначения при запуске git remote -v

В моем случае у меня были настроены ключи ssh, но результат этой команды был:

Origin [email protected]:USERNAME/REPOSITORY.git

(обратите внимание наgetnotgit)

и не 

Origin [email protected]:USERNAME/REPOSITORY.git

Опять же, это был очень особый случай, но обязательно проверьте строки этой системы, если у вас возникли проблемы.

Вы можете исправить это с помощью следующих команд:

git remote set-url Origin [email protected]:USERNAME/REPOSITORY.git

0
chase

У меня возникла похожая проблема, когда я ранее использовал HTTPS для доступа к хранилищу, и мне пришлось переключиться на SSH, установив URL так;

git remote set-url Origin ssh://[email protected]/...
0
McEwin

В Windows ответ @efesaid работал для решения проблем с тестом соединения ssh. Кстати, вы можете добавить -v, чтобы увидеть, какие ключи (по имени) используются и почему происходит сбой соединения.

Тем не менее, когда вы нажимаете на bitbucket, используя [email protected]: user/repo.git, кажется, что Host - это не совсем bitbucket.org, поэтому я все еще получал проблемы с отказом в разрешении. Я решил их, переименовав свой ключ в id_rsa (это имя ключа, которое пыталось выполнить в тесте ssh). 

Это работает, если у вас есть один ключ RSA. Для нескольких ключей, возможно, Хост в файле конфигурации должен быть 

bitbucket.org:username

но я не уверен, что это недо

0
Arcanefoam

Я думаю, что инструкции bitbucket являются лучшими. Проверьте, установлен ли ssh и не установлен ли он

[email protected]:~$ 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]] [[email protected]]hostname [command]

[email protected]:~$ ls -a ~/.ssh 
.  ..  google_compute_engine  google_compute_engine.pub  identity  identity.pub  known_hosts

[email protected]:~$ 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 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|              .  |
|           xx x  |
|          xxxxx  |
|       xxxxxxxxx |
|      .xxxxxxxx  |
|       xxxxx     |
|     xxxxxxxxxxxx|
|    xxxxxxxxxxxxx|
|     xxxxxxxxxxx |
+-----------------+                                                                                                                                  
[email protected]:~$ 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

[email protected]:~$ ssh-agent /bin/bash

проверить, запущен ли агент

[email protected]:~$ ps -e | grep [s]sh-agent 
26503 ?        00:00:00 ssh-agent
[email protected]:~$ ssh-add ~/.ssh/id_rsa
Identity added: /home/krasen/.ssh/id_rsa (/home/krasen/.ssh/id_rsa)
[email protected]:~$ 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)
[email protected]:~$ cat ~/.ssh/id_rsa.pub
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

получить этот ключ и добавить его в качестве ключа в настройках bitbucket

0
makkasi

Убедитесь, что вы переключились на правильного пользователя на терминале. 

В моем случае пользователь root не был тем, у кого были добавлены ssh-ключи на панели настроек bitbucket. Запустив git с Sudo, он запускается от имени пользователя root, а мой собственный пользователь добавил добавленные ключи. 

0
Erdinç Çorbacı

В моем случае это решило проблему добавления ключа ssh из каталога 

~/.ssh/id_rsa.pub

на bitbucket.org . Я назвал это также id_rsa.pub на сайте.

В начале я добавил еще один ключ, который я создал только для bitbucket, и назвал его так. Первые удаленные действия сработали, но через несколько дней запрос был отклонен. 

0
Alex Cio

Моя проблема была связана с разрешениями.

Каталог моего проекта принадлежал root, но я вошел как ubuntu. Я бы получил PERMISSION DENIED, если бы набрал команду git, например git pull Origin master, поэтому я использовал Sudo git pull Origin master.

Я зарегистрировал SSH-ключ ubuntu от /home/ubuntu/.ssh/id_rsa.pub в BitBucket.

Тем не менее, я использовал Sudo. Таким образом, используемый ключ SSH на самом деле был /home/root/.ssh/id_rsa.pub, который отличался от того, что имел BitBucket.

Решение для моего случая

chown -R username_here:username_here project/folder/here

Теперь это должно работать, если вы не добавляете Sudo

ИЛИдать ключ BitBucket root

0
Toby Mellor