Невозможно нажать на битбакет, разрешение запрещено (publickey)
Я пытаюсь подтолкнуть свой проект к моему битбакету, вступая в дело с этим в течение примерно 4 дней, проливая бесчисленные решения проблем/страницы/устранение неполадок/учебники. Im в растерянности и очень расстроен. Я делал это раньше, но на разных компьютерах... так или иначе, это код/ответ, который я получаю
~/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, и когда я попытался снова нажать, я получил:
~/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.
Ответы
Ответ 1
Вы можете установить флаг файла IdentityFile в файле ~/.ssh/config следующим образом:
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
При запуске
ssh [email protected]
клиент ssh позволяет выбрать файл, из которого считывается идентификатор (закрытый ключ) для аутентификации RSA или DSA.
Клиент SSH для использования данного приватного ключа (файл идентификации)
Ответ 2
Это может заставить системных администраторов отвратиться в ужасе, но после этой проблемы (Windows) я отказался от SSH и вернулся к HTTPS.
При первом добавлении удаленного репозитория в Git замените ссылку SSH '[email protected]
' URL-адресом HTTPS 'https://<username>@bitbucket.org
'.
Вы должны вводить пароль каждый раз, но особенно в Windows, где SSH не так широко распространен, как в семействе * nix, я вижу это как незначительное неудобство по сравнению с головными болями SSH.
Ответ 3
В моем случае на новом компьютере Ubuntu 16 мне не хватало файлов в папке ~/.ssh
, так что сработало:
- Перейдите в папку
~/.ssh
- Запустите
ssh-keygen
и назовите свой файл i.e. id_rsa
- Запустить
cat ~/.ssh/id_rsa.pub | xclip -sel clip
Если вы пропустите xclip
только apt-get install xclip
:)
- Перейдите к (в url измените USERNAME на свое имя пользователя bitbucket:)) https://bitbucket.org/account/user/USERNAME/ssh-keys/
- Нажмите
Add key
и вставьте ключ из буфера обмена
Магия - теперь это работает:)
Ответ 4
Более устойчивым решением является редактирование .bashrc
(например, vi ~/.bashrc
), а затем добавьте к нему следующую строку (замените имя ключа)
ssh-add ~/.ssh/YOUR_KEY
Это автоматически загрузит ключ при запуске оболочки
Ответ 5
Я столкнулся с такими же проблемами в 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
Что все!
Ответ 6
Возможно, вы используете ssh как исходный url git. Попробуйте удалить начало ssh таким образом
git remote rm origin
Затем добавьте новое начало с URL-адресом HTTPS и повторите попытку.
git remote add origin https://[email protected]/SOMETHING/SOMETHING.git
git push -u origin master
Убедитесь, что вы вставляете свой URL из битбакета в качестве источника.
Ответ 7
В моем случае он решил проблему добавить ключ ssh из каталога
~/.ssh/id_rsa.pub
on bitbucket.org. Я назвал его также id_rsa.pub на веб-сайте.
В начале я добавил еще один ключ, который я создал только для битбакет, и назвал его таким. Первые удаленные действия работали, но через несколько дней запрос был отклонен.
Ответ 8
В Windows ответ @efesaid работал для решения проблем с помощью теста подключения ssh. Кстати, вы можете добавить -v, чтобы узнать, какие клавиши (по имени) пытались и почему соединение терпит неудачу.
Однако при нажатии на битбакет, используя git @bitbucket.org: user/repo.git, кажется, что хост не является точно bitbucket.org, поэтому я все еще получал разрешение на отказ в проблемах. Я решил их (re) называть мой ключ id_rsa (это ключевое имя, которое пыталось выполнить в тесте ssh).
Это работает, если у вас есть один ключ rsa. Для нескольких ключей, возможно, хост в файле конфигурации должен быть
bitbucket.org:username
но я не уверен, что это unde
Ответ 9
Я думаю, что инструкции 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 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
получить этот ключ и добавить его в качестве ключа в настройках битбакета
Ответ 10
Проверить наличие ключа SSH
ls -al ~/.ssh
Скопируйте SSH-ключ
cat ~/.ssh/id_rsa.pub | pbcopy
Добавьте скопированный SSH-ключ в "Настройки Bitbucket", "Безопасность", "SSH-ключи".
Ответ 11
У меня возникла аналогичная проблема, когда я ранее использовал HTTPS для доступа к репозиторию и мне пришлось переключиться на SSH, установив такой URL-адрес:
git remote set-url origin ssh://[email protected]/...
Ответ 12
Это может быть очевидно, но я потратил на это немало времени.
Проверьте назначение при запуске git remote -v
В моем случае у меня были отлично настроены клавиши ssh, но выход из этой команды был:
origin [email protected]:USERNAME/REPOSITORY.git
(обратите внимание на получить не git)
а не
origin [email protected]:USERNAME/REPOSITORY.git
Опять же, это был очень частный случай, но не забудьте тщательно проверить струны этой системы, если у вас возникли проблемы.
Вы можете исправить это с помощью следующих команд:
git remote set-url origin [email protected]:USERNAME/REPOSITORY.git