Git не использует ключ SSH (Windows)

Я создал ключ SSH для своего репозитория GitLab, и когда я тестирую его с помощью SSH, он работает и запрашивает парольную фразу:

>ssh -T [email protected]
Enter passphrase for key 'C:\Users\[username]/.ssh/id_ed25519':
Welcome to GitLab, @000[...]!

я также использовал

>git remote set-url origin [email protected]:000[...]/project.git

без ошибок. Однако, когда я пытаюсь зафиксировать и отправить в репозиторий, Git запрашивает пароль [email protected], а не парольную фразу ключа SSH.

Согласно документам (https://docs.gitlab.com/ee/ssh/), вы можете установить ключ ssh в файле конфигурации ~/.ssh/config. Поэтому я создал текстовый файл в этом каталоге с таким содержимым:

Host gitlab.lrz.de
 HostName gitlab.lrz.de
 IdentityFile ~/.ssh/id_ed25519

Он по-прежнему не работает, и я не уверен, что он вообще использует этот файл конфигурации. Мне удалось запустить все на сервере Linux, но не на этом компьютере с Windows. Я попробовал это через командную строку и через Pycharm.

>git --version
git version 2.35.1.windows.1 

Я хочу попытаться объяснить, что, видимо, произошло: у меня есть дом в его обычном месте (C:\Users\username) и при создании ключей ssh или при использовании ssh используется это местоположение. Однако у каждого пользователя также есть дом на другом сервере, и, по-видимому, git интерпретировал ~ как этот (P:). А еще на самом деле там есть папка .ssh и конфиг-файл.

Godrebh 21.03.2022 13:07
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
81
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете настроить команду ssh, используемую git, в конфигурации git, а затем передать свой ключ при использовании любой команды git.

git config core.sshCommand "ssh -i ~/.ssh/id_ed25519"

Это не сразу сработало, но я получил сообщение об ошибке, которое мне помогло! Там было сказано, что Warning: Identity file /p//.ssh/id_ed25519 not accessible: No such file or directory. Так что я использовал полный путь к ключевому файлу, и тогда он работал с этой командой. Благодарю вас!

Godrebh 21.03.2022 11:45

И кстати: теперь это работает и через Pycharm!

Godrebh 21.03.2022 11:49

Круто, рад был помочь тебе :)

kipy 21.03.2022 12:01

в PyCharm попробуйте перейти к VCS -> Git -> Remotes и убедитесь, что настроенный там URL-адрес выровнен с URL-адресом SSH (вы можете увидеть URL-адрес ssh при переходе к репозиторию через браузер и нажатии на кнопку клонирования)

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