Клонирование репозитория 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?
Спасибо
Сначала проверьте переменные среды (активны при запуске Visual Studio)
Если у вас все еще есть ссылка на GIT_SSH, удалите ее (и перезапустите VSCode): недавний Git for Windows должна использовать OpenSSH по умолчанию.
Затем для тестирования установите упрощенный
%PATH%
:Создайте ключ без ключевой фразы (опять же, для тестирования) в этом сеансе CMD, используя старый формат.
Если вы используете файл по умолчанию (без параметра
-f
), это будет проще.Если нет, вы можете настроить
%USERPROFILE%/.ssh/config
файл, как описано здесь.OP HashCoder добавляет в комментариях:
Я последовал предложению, упомянутому в ссылке, и получаю сообщение об ошибке при попытке клонировать репо -% 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.2020URL-адрес похож на 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
Я не использую 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
со следующим содержимым.Вы должны заменить
{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
обычно происходит по двум сценариям.
1) ваш интернет не работает (да, бывает).
2) это ваша конфигурация ssh.
это не просто генерация ключа, важно добавить его в вашу учетную запись bitbucket. проверьте, правильно ли вы это сделали. Предполагая, что ты все сделал правильно
ps: каждый раз, когда вы генерируете, ключ будет обновляться, поэтому важно также обновить новый ключ в вашей учетной записи Bitbucket.
кроме того, нет отдельного терминала для VS Code. если вы используете Windows, это ваш обычный cmd или Windows Power Shell, когда вы используете Linux, это обычное приглашение оболочки, которое открывается через VS Code.