
Я работаю на машине с Windows 10, с включенным режимом разработчика и установленной подсистемой Linux. Когда я переключаюсь в bash, я пытаюсь запустить простую команду клонирования из git:
git clone https://github.com/PrivateRepo/my-private-repo.git
Конечно, я немного почистил URL, но вы поняли идею. Первоначально ответ, который я получил от этой команды, был таким:
фатально: невозможно получить доступ 'https://github.com/PrivateRepo/my-private-repo.git/': проверка сертификата сервера не удалась. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: нет
Я видел несколько ответов на Stack Overflow, где говорилось об этом, но, честно говоря, я не совсем понимаю,правильныйспособ справиться с этой ошибкой. С учетом сказанного, я знаю неправильный способ, который заключается в том, чтобы просто обойти ее полностью, выполнив следующую команду:
git config --global http.sslverify false
И это, кажется, работает. Возможно, это плохо, что я отключаю всю проверку SSL, но мне нужно, чтобы это работало, и это не совсем суть этого вопроса (к которому я подхожу). Но в качестве отступления, если вы знаете правильный способ исправить это, я весь внимание.
Затем я снова запустил команду git clone
, и на этот раз она запросила у меня имя пользователя и пароль, но в конечном итоге завершилась неудачей по другой причине. Вот как это выглядело:
git clone https://github.com/PrivateRepo/my-private-repo.git
Cloning into 'my-private-repo'...
Username for 'https://github.com': myuser
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/PrivateRepo/my-private-repo.git'
Однако я могу вас заверить, что имя пользователя, которое я ввел, было правильным, как и пароль. У меня также установлен Git для Windows, и когда я попробовал его там, все заработало. Единственным недостатком было то, что вместо того, чтобы запрашивать пароль в командной строке, он открыл отдельное окно для ввода учетных данных, и там же попросил меня ввести шестизначный код 2FA. Затем он отлично клонировался. Я заметил, что при этом он создал токен личного доступа в Github. Поэтому я пошел дальше и создал еще один токен личного доступа и попытался вручную использовать его в bash. По сути, вместо того, чтобы вводить myuser
имя пользователя, я ввелmyuser:mytoken
git clone https://github.com/PrivateRepo/my-private-repo.git
Cloning into 'my-private-repo'...
Username for 'https://github.com': myuser:a1abcdefab2a34567ab8901a2bc3d4567890a1b2
Password for 'https://myuser:[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/PrivateRepo/my-private-repo.git'
Но как вы видите, это все еще не удалось. Как мне заставить git работать в bash на Windows?
решение1
Вы используете реализацию git
в вашем текущем дистрибутиве Linux, которую вы, вероятно, не настроили. Попробуйте git.exe
вместо этого использовать:
git.exe clone https://github.com/PrivateRepo/my-private-repo.git
Вы можете использовать alias
команду в вашем .bashrc
:
alias git='git.exe'
решение2
Вам нужно просто использовать свое имя пользователя, а затем вместо пароля использовать свой токен доступа. Вам не нужен ваш пароль, так как токен его заменяет.