Я пытаюсь получить доступ к старому репозиторию 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, но это не имело никакого эффекта.
Может кто-нибудь указать мне в правильном направлении, пожалуйста.
Обратите внимание: репозиторий существует, и у меня есть правильные права доступа. Откуда я это знаю? Потому что у меня есть этот репозиторий, клонированный в другом месте на этой же машине, и я могу отправить его.
Нет. Нет прокси-сервера gitconfig или вместо настроек
Краткая версия этой команды ssh -vvv git
говорит: «ssh очень многословно разместить git
с аргументами...»
Попробуйте просто git clone ...
?
Я добавляю «ssh -vvv» просто для того, чтобы предоставить некоторую информацию по этому вопросу. «git clone ..» сам по себе завершается с ошибкой: «фатально: не удалось прочитать из удаленного репозитория. Убедитесь, что у вас правильные права доступа и репозиторий существует». И то и другое верно.
Вам нужно будет только передать эту команду.
git clone ssh://[email protected]:william_ferguson_au/lexathon-server.git
Нет причин запускать ssh -vvv git ...
Когда вы это делаете, вы передаете аргументы ssh
для поиска имени хоста git
, о котором ошибка сообщает вам, что он не понимает переданные аргументы и этот хост не существует.
Если срок действия ключа ssh истек или он больше не работает, вы получите ошибку 401 от Bitbucket, в противном случае начнется клонирование.
Я добавляю «ssh -vvv» просто для того, чтобы предоставить некоторую информацию по этому вопросу. «git clone ..» сам по себе завершается с ошибкой: «фатально: не удалось прочитать из удаленного репозитория. Убедитесь, что у вас правильные права доступа и репозиторий существует». И то, и другое верно
Как уже говорили другие, вам не нужен ssh -vvv
, но если вы собираетесь использовать формат ssh://
, вам нужно использовать git clone ssh://[email protected]/william_ferguson_au/lexathon-server.git
(с ssh://
и косой чертой между bitbucket.org
и william_ferguson_au
вместо двоеточия).
Вместо этого вы также можете использовать git clone [email protected]:william_ferguson_au/lexathon-server.git
(без ssh://
и с двоеточием между bitbucket.org
и william_ferguson_au
). Оба будут работать, но одновременно вы можете использовать только один.
Я пробовал все варианты, ни один из них не работает.
Что именно там написано, чтобы заставить вас думать, что это не работает? (Обратите внимание, что я прошу точный результат. Пожалуйста, скопируйте и вставьте — здесь не место для подведения итогов.)
На связанной странице написано, что команда должна быть
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» не распознается как внутренняя или внешняя команда, исполняемая программа или командный файл».
Обратите внимание: я добавил «ssh -vvv» просто для того, чтобы предоставить некоторую информацию по этому вопросу. «git clone ..» сам по себе завершается с ошибкой: «фатально: не удалось прочитать из удаленного репозитория. Убедитесь, что у вас правильные права доступа и репозиторий существует». И то и другое верно. См. обновленный вопрос.
Я обновил ответ для w32 (cmd).
ssh -vvv
нельзя добавлять перед git clone
. Могло бы быть ssh -vvv git@<bitbucket URL>
, но точно нет git clone
.
Записал. Спасибо. Я обновил вопрос, указав выходные данные клиента git.
@William См. Upd2.
Вопрос обновлен, и я нашел решение. NB. Мне вообще не удалось создать решение, использующее URL-адрес ssh://.
ОК, поэтому используя
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. Аутентификация прошла успешно, репозиторий найден и клонирован.
Вы установили какие-либо параметры, связанные с
proxy
илиinsteadof
, в gitconfig?