Проблема с клонированием репозитория git с использованием ssh со вторичным (не по умолчанию) открытым ключом

Я пытаюсь получить доступ к старому репозиторию git на BitBucket через SSH. Ключ SSH не изменился ни на клиенте, ни на BitBucket, но клонирование репо не удается.

git clone [email protected]:william_ferguson_au/lexathon-server.git
Cloning into 'lexathon-server'...
The requested repository either does not exist or you do not have access. If you believe this repository exists and you have access, make sure you're authenticated.
fatal: Could not read from remote repository.

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

Варианты команды, предложенные ответчиками:

git clone ssh://[email protected]/william_ferguson_au/lexathon-server.git
Cloning into 'lexathon-server'...
The requested repository either does not exist or you do not have access. If you believe this repository exists and you have access, make sure you're authenticated.
fatal: Could not read from remote repository.

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


git clone ssh://[email protected]:william_ferguson_au/lexathon-server.git
Cloning into 'lexathon-server'...
ssh: Could not resolve hostname bitbucket.org:william_ferguson_au: Name or service not known
fatal: Could not read from remote repository.

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


Я попытался создать новый ключ SSH и загрузить его в BitBucket, как было предложено https://confluence.atlassian.com/bitbucketserverkb/git-clone-fails-when-cloning-via-ssh-879243661.html, но это не имело никакого эффекта.

Может кто-нибудь указать мне в правильном направлении, пожалуйста.

Обратите внимание: репозиторий существует, и у меня есть правильные права доступа. Откуда я это знаю? Потому что у меня есть этот репозиторий, клонированный в другом месте на этой же машине, и я могу отправить его.

Вы установили какие-либо параметры, связанные с proxy или insteadof, в gitconfig?

ElpieKay 11.06.2024 05:16

Нет. Нет прокси-сервера gitconfig или вместо настроек

William 11.06.2024 07:15
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
118
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Краткая версия этой команды ssh -vvv git говорит: «ssh очень многословно разместить git с аргументами...»

Попробуйте просто git clone ...?

Я добавляю «ssh -vvv» просто для того, чтобы предоставить некоторую информацию по этому вопросу. «git clone ..» сам по себе завершается с ошибкой: «фатально: не удалось прочитать из удаленного репозитория. Убедитесь, что у вас правильные права доступа и репозиторий существует». И то и другое верно.

William 10.06.2024 10:27

Вам нужно будет только передать эту команду.

git clone ssh://[email protected]:william_ferguson_au/lexathon-server.git

Нет причин запускать ssh -vvv git ... Когда вы это делаете, вы передаете аргументы ssh для поиска имени хоста git, о котором ошибка сообщает вам, что он не понимает переданные аргументы и этот хост не существует.

Если срок действия ключа ssh истек или он больше не работает, вы получите ошибку 401 от Bitbucket, в противном случае начнется клонирование.

Я добавляю «ssh -vvv» просто для того, чтобы предоставить некоторую информацию по этому вопросу. «git clone ..» сам по себе завершается с ошибкой: «фатально: не удалось прочитать из удаленного репозитория. Убедитесь, что у вас правильные права доступа и репозиторий существует». И то, и другое верно

William 10.06.2024 10:28

Как уже говорили другие, вам не нужен ssh -vvv, но если вы собираетесь использовать формат ssh://, вам нужно использовать git clone ssh://[email protected]/william_ferguson_au/lexathon-server.gitssh:// и косой чертой между bitbucket.org и william_ferguson_au вместо двоеточия).

Вместо этого вы также можете использовать git clone [email protected]:william_ferguson_au/lexathon-server.git (без ssh:// и с двоеточием между bitbucket.org и william_ferguson_au). Оба будут работать, но одновременно вы можете использовать только один.

Я пробовал все варианты, ни один из них не работает.

William 10.06.2024 10:29

Что именно там написано, чтобы заставить вас думать, что это не работает? (Обратите внимание, что я прошу точный результат. Пожалуйста, скопируйте и вставьте — здесь не место для подведения итогов.)

Jim Redmond 10.06.2024 21:38

На связанной странице написано, что команда должна быть

GIT_SSH_COMMAND = "ssh -vvv" git clone ssh://git@<bitbucket URL>:<bitbucket port>/<project key>/<repository slug>.git

нет ssh -vvv git.

Обновление. Для w32 (cmd) команды должны быть такими:

set GIT_SSH_COMMAND = "ssh -vvv"
git clone ssh://git@<bitbucket URL>:<bitbucket port>/<project key>/<repository slug>.git
set GIT_SSH_COMMAND=

Обновление 2. Для URL-адреса ssh:// синтаксис должен быть ssh://[email protected]/william_ferguson_au/lexathon-server.git, а не ssh://[email protected]:william_ferguson_au/lexathon-server.git. Обратите внимание на разницу между : и /. Для scp-подобного URL синтаксис [email protected]:william_ferguson_au/lexathon-server.git. Для ssh:// URL : может использоваться для нестандартного порта: ssh://[email protected]:22/william_ferguson_au/lexathon-server.git. Для URL-адреса типа scp нельзя использовать нестандартный порт.

См. документацию.

Да. Но это еще и для Linux, а не для Windows. После того, как вы установили эту переменную env, как вы написали выше, и попытались ее выполнить, она просто терпит неудачу с сообщением «ssh -vvv» не распознается как внутренняя или внешняя команда, исполняемая программа или командный файл».

William 10.06.2024 10:32

Обратите внимание: я добавил «ssh -vvv» просто для того, чтобы предоставить некоторую информацию по этому вопросу. «git clone ..» сам по себе завершается с ошибкой: «фатально: не удалось прочитать из удаленного репозитория. Убедитесь, что у вас правильные права доступа и репозиторий существует». И то и другое верно. См. обновленный вопрос.

William 10.06.2024 10:42

Я обновил ответ для w32 (cmd).

phd 10.06.2024 14:07
ssh -vvv нельзя добавлять перед git clone. Могло бы быть ssh -vvv git@<bitbucket URL>, но точно нет git clone.
phd 10.06.2024 14:08

Записал. Спасибо. Я обновил вопрос, указав выходные данные клиента git.

William 11.06.2024 00:16

@William См. Upd2.

phd 11.06.2024 10:20

Вопрос обновлен, и я нашел решение. NB. Мне вообще не удалось создать решение, использующее URL-адрес ssh://.

William 12.06.2024 06:36
Ответ принят как подходящий

ОК, поэтому используя

set GIT_SSH_COMMAND=ssh -vvv
git clone git@<bitbucket URL>:<project key>/<repository slug>.git

Я вижу, что он проходит аутентификацию с помощью BitBucket, используя открытый ключ ssh по умолчанию (.ssh/id_rsa), но затем не может найти это репо, поскольку пользователь открытого ключа по умолчанию не имеет доступа к этому репо.

Мне нужно было добавить «-» и ключ проекта к URL-адресу BitBucket. т.е.

git clone git@<bitbucket URL>-<project key>:<project key>/<repository slug>.git

Это позволит найти правильный открытый ключ для аутентификации в репозитории BB. Аутентификация прошла успешно, репозиторий найден и клонирован.

Другие вопросы по теме