SSH Bitbucket Clone в Visual Studio 2019 не работает

Клонирование репозитория bitbucket с помощью Visual Studio 2019 не работает. Я могу клонировать с помощью командной строки, но не с помощью расширения Visual Studio 2019 Git.

Командная строка:

start-ssh-agent.cmd

тогда

git clone <ssh url>

Это отлично работает в командной строке, но при попытке клонирования с помощью Visual Studio 2019 (расширение Git по умолчанию) я получаю эту ошибку.

введите описание изображения здесь

Клонирование также отлично работает с командой gitbash.

$ eval ssh-agent -s

$ ssh-add id_rsa

Расширение VS git отлично работает для URL-адресов https, но не использует URL-адреса SSH.

Я создал ключ, перейдя по этой ссылке https://confluence.atlassian.com/bitbucketserver067/creating-ssh-keys-979426660.html и обновил ключ в битбакете.

Кто-нибудь из вас столкнулся с этой проблемой, или мне не хватает каких-либо шагов по настройке VS 2019 для работы с URL-адресами SSH?

Спасибо

См. также:  Только GitLab + Composer + Private Repo + SSH
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. HashCoder

    Сначала проверьте переменные среды (активны при запуске Visual Studio)

    Если у вас все еще есть ссылка на GIT_SSH, удалите ее (и перезапустите VSCode): недавний Git for Windows должна использовать OpenSSH по умолчанию.

    Затем для тестирования установите упрощенный %PATH%:

    set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
    set GH=C:\path\to\git
    set PATH=%GH%\bin;%GH%\usr\bin;%GH%\cmd;%GH%\mingw64\bin;%PATH%
    

    Создайте ключ без ключевой фразы (опять же, для тестирования) в этом сеансе CMD, используя старый формат.

    ssh-keygen -m PEM -t rsa -P "" -f afile
    

    Если вы используете файл по умолчанию (без параметра -f), это будет проще.
    Если нет, вы можете настроить %USERPROFILE%/.ssh/config файл, как описано здесь.

    OP HashCoder добавляет в комментариях:

    Я сгенерировал ключ с помощью командной строки gitbash и добавил ключ в ssh-агент.
    После этого я попытался клонировать с помощью Visual Studio и работал.

    Я последовал предложению, упомянутому в ссылке, и получаю сообщение об ошибке при попытке клонировать репо -% PROGRAMFILES ‘(X86’)% / Git / usr / bin / ssh.cmd: line 0: fg: no job control Do you знаете, почему это происходит? person HashCoder; 31.01.2020

    @HashCoder Какая ссылка? А какую версию Git вы сейчас используете? person HashCoder; 31.01.2020

    Версия Git — 2.25.0, а ссылка — stackoverflow.com/questions/42773636/ person HashCoder; 31.01.2020

    @HashCoder ОК. Я полагаю, что может потребоваться изменить / адаптировать содержимое ссылки к вашему варианту использования. ssh.cmd здесь не нужен (без парольной фразы и ssh-agent) person HashCoder; 31.01.2020

    Я попробовал указанные вами шаги, что также привело к той же ошибке, что и в моем вопросе. person HashCoder; 03.02.2020

    @HashCoder. Тогда удаленный репозиторий, указанный в Visual Studio, кажется некорректным. person HashCoder; 03.02.2020

    Клонирование отлично работает, когда я использую командную строку или Git Bash, используя тот же URL-адрес, но не использую Visual Studio. person HashCoder; 03.02.2020

    @HashCoder Это URL-адрес SSH, например [email;protected]:<me>/<myrepo>? person HashCoder; 03.02.2020

    URL-адрес похож на ssh: // git @ ‹companyname› -bitbucket. ‹companyname› .com: ‹portnumber› / ‹projectname› / ‹reponame› .git person HashCoder; 03.02.2020

    @HashCoder Вы пробовали использовать для тестирования URL https (немного как в donovanbrown.com/post/)? person HashCoder; 03.02.2020

    @HashCoder Я бы порекомендовал попросить администратора, чтобы этот локальный экземпляр BitBucket comanyname выглядел как журналы демона SSH (возможно, в /var/log/auth.log) при условии, что демон SSH запущен с -d (режим отладки, как указано в stackoverflow.com/a/22740720/6309) person HashCoder; 03.02.2020

    Я сгенерировал ключ с помощью командной строки gitbash и добавил ключ в ssh-агент. После этого я попытался клонировать с помощью Visual Studio и работал. Спасибо за помощь. person HashCoder; 05.02.2020

    @HashCoder Отлично! Я включил ваш комментарий в ответ для большей наглядности. person HashCoder; 05.02.2020

  2. HashCoder

    Я не использую Bitbucket с Visual Studio 2019, я использую GitLab с Visual Studio 2019 через SSH. Но я предполагаю, что процедура такая же.

    Я объясню вам структуру, которую я использую для управления ключами SSH, используемыми для GIT (Github, GitLab и т. Д.). До сих пор у меня всегда получалось, так что, может быть, и у вас :)

    Найдите папку %userprofile%/.ssh в вашей системе и создайте в ней папку bitbucket.org. Если вы не можете найти папку .ssh, вы можете просто создать ее в %userprofile%. Скопируйте открытый и закрытый ключ ssh во вновь созданную папку (bitbucket.org). Имя файла должно совпадать с вашим именем пользователя на битбакете. У закрытого ssh-ключа не должно быть расширения файла. Открытый ключ ssh должен оканчиваться на * .pub.

    После создания папки и копирования всех ключей вам необходимо создать файл config в %userprofile%/.ssh со следующим содержимым.

    # Bitbucket
    Host bitbucket.org
        Hostname bitbucket.org
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/bitbucket.org/{username}
    

    Вы должны заменить {username} на правильное имя файла.

    Ваша структура папок должна быть следующей:

    • %userprofile%/.ssh
      • bitbucket.org
        • username
        • username.pub
      • config

    Возможно, вам потребуется перезапустить Visual Studio 2019 и все терминалы.

    HTH

    Я тестировал его на своей машине с битбакетом, и он работает. Будьте осторожны при использовании кнопки clone в Bitbucket, поскольку вы также копируете git clone часть URL-адреса, которую нельзя вводить в Visual Studio. Если вы используете автономный вариант bitbucket, вам нужно поменять местами bitbucket.org фактическим хостом (<companyname>-bitbucket.<companyname>.com). person HashCoder; 03.02.2020

    Я сгенерировал ключ с помощью командной строки gitbash и добавил ключ в ssh-агент. После этого я попытался клонировать с помощью Visual Studio и работал. Спасибо за помощь. person HashCoder; 05.02.2020

  3. HashCoder

    Ошибка: убедитесь, что у вас есть правильные права доступа или удаленный репозиторий существует.

    обычно происходит по двум сценариям.

    1) ваш интернет не работает (да, бывает).

    2) это ваша конфигурация ssh.

    это не просто генерация ключа, важно добавить его в вашу учетную запись bitbucket. проверьте, правильно ли вы это сделали. Предполагая, что ты все сделал правильно

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

    кроме того, нет отдельного терминала для VS Code. если вы используете Windows, это ваш обычный cmd или Windows Power Shell, когда вы используете Linux, это обычное приглашение оболочки, которое открывается через VS Code.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: