Неверная кодовая фраза 3 раза: git больше не запрашивает парольную фразу

Я хотел нажать на удаленный репозиторий git. Я набрал неверную кодовую фразу три раза. Я создал новый ключ ssh и зарегистрировал новый открытый ключ на сервере репозитория. Но агент ssh не запрашивает парольную фразу. Он просто говорит мне:

Отказано в доступе (публикация). фатальный: не удалось прочитать с удаленного хранилище.

Пожалуйста, убедитесь, что у вас есть правильные права доступа и репозиторий существует.

Как я могу решить эту проблему в ubuntu?

Edit

Как было предложено, я попробовал ssh-add

[email protected]:~$ cd .ssh/
[email protected]:~/.ssh$ ls
config  github_rsa  github_rsa.pub  id_rsa  id_rsa.pub  keys.zip  known_hosts
[email protected]:~/.ssh$ ssh-add 
Enter passphrase for /home/sadik/.ssh/id_rsa: 
Identity added: /home/sadik/.ssh/id_rsa (/home/sadik/.ssh/id_rsa)
[email protected]:~/.ssh$ 
[email protected]:~/.ssh$ cd
[email protected]:~$ cd some/git-repo/
[email protected]:~/some/git-repo/$ git push -u bitbucket master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Я должен добавить, что этот репозиторий git был клонирован из github (не принадлежащий мне). Я хочу нажать его на моем частном репозитории на битбакете. Я не знаю, может ли это привести к проблемам с разрешением, но моя первая проблема заключается в том, что ssh не запрашивает парольную фразу. Даже после перезагрузки или выхода из системы.

Edit

Как явственно предложил Jakuje, я ввел команду GIT_SSH_COMMAND="ssh -vvv" git push -u bitbucket master, чтобы получить клиентские журналы. Это конец вывода:

debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/sadik/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/sadik/.ssh/id_dsa
debug3: no such identity: /home/sadik/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/sadik/.ssh/id_ecdsa
debug3: no such identity: /home/sadik/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/sadik/.ssh/id_ed25519
debug3: no such identity: /home/sadik/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

По какой-либо причине он ищет pubkey id_dsa, поэтому я скопировал id_rsa в id_dsa и попробовал его снова. Теперь это подсказывает кодовую фразу! Но... когда я ввожу неверную кодовую фразу, он снова спрашивает меня. Когда я вхожу в правильный, он говорит, что разрешение отклонено.

$ git push -u bitbucket master
Enter passphrase for key '/home/sadik/.ssh/id_dsa': 
Enter passphrase for key '/home/sadik/.ssh/id_dsa': 
Enter passphrase for key '/home/sadik/.ssh/id_dsa': 
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
  • Что не так с разрешениями?
  • Почему он ищет id_dsa вместо id_rsa?

Ответ 1

Все выглядит достаточно сложным, что, возможно, стоит начать все сначала:

  • Удалите все ключи в ~/.ssh, которые вам не нужны (если есть ключи, которые вы хотите сохранить, подумайте о переносе их в другой каталог).
  • Если существует ~/.ssh/config, убедитесь, что у него нет подозрительных строк.
  • Если вы используете ssh-agent, удалите все ключи, используя ssh-add -D. Убедитесь, что клавиши ssh-add -l отсутствуют. Если вы видите какой-либо вывод, вы страдаете от этой ошибки. Выйдите из системы, войдите в систему и убедитесь, что ssh-add -l не производит вывод.
  • Запустите ls -al ~/.ssh и убедитесь, что там нет ключей.
  • Создайте новый ключ, используя ssh-keygen. Нажмите enter, когда он запрашивает, чтобы выходной файл использовал значение по умолчанию, затем введите парольную фразу дважды.
  • Запустите ls -al ~/.ssh и убедитесь, что существуют id_rsa и id_rsa.pub.
  • Удалить существующие ключи из Bitbucket.
  • Добавьте содержимое файла ~/.ssh/id_rsa.pub в Bitbucket.
  • Проверьте соединение с помощью ssh -T [email protected]. Если он терпит неудачу, опубликуйте вывод ssh -vvv [email protected].
  • Убедитесь, что команды git работают.

Почему он ищет id_dsa вместо id_rsa?

SSH пробует несколько ключей, пока не найдет тот, который работает. Он попытался id_rsa, ключ был отклонен, поэтому он попытался выполнить id_dsa.

Кредит @Leon для упоминания ssh-add.

Ответ 2

Я забыл кодовую фразу и много раз ошибался. Поэтому я создал новую.

Я читал, что, поскольку у вас был ключ, который работал, вы создали новый, и вам интересно, почему он не работает.

Вам нужно скопировать открытый ключ на сервер authorized_keys.