`git pull --rebase origin dev xxxxx.git` требует аутентификации

Я хочу перенести некоторое программное обеспечение в ветку «dev». Программное обеспечение было разработано для другого компьютера с Windows, и в настоящее время я повторно инициализировал репозиторий git с нуля на машине Linux и хочу перенести свою работу в репозиторий компании и добавить свой патч в предыдущую ветку разработки.

 git init
 git branch -M dev
 git remote add origin https://github.com/<company>/<repository>.git
 git add .
 git commit -m "first commit"
 git pull --rebase origin dev git@gitserv:<company>/<repository>.git

последняя команда не работает, и я не понимаю своей проблемы. Во-первых, у меня есть ключ Github, который выглядит как SHA256: CUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

Во-вторых, у меня есть «Токены личного доступа (классические)», которые мы обычно устанавливаем в пункте «Настройки разработчика» и которые выглядят как ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
В-третьих, у меня есть ~/ssh/config

  Host gitserv
      HostName git.com
      IdentityFile ~/.ssh/id_rsa.github
      IdentitiesOnly yes 
      AddKeysToAgent yes

И, конечно же, у меня есть ~/.ssh/id_rsa.github и ~/.ssh/id_rsa. Все выглядит хорошо, но последняя команда

  git pull --rebase origin dev git@gitserv:<company>/<repository>.git

не работает, спросите логин/пароль и что сказано

  remote: Support for password authentication was removed on August 13, 2021.

Я не понимаю своей ошибки, что я делаю не так?

Вы пытаетесь отправить сообщение на git.com, когда используете «gitserv». Вы уверены, что это git-сервер вашей компании? Иногда вы пишете github, затем git, затем gitserv. Пожалуйста, правильно поймите формулировку/значение. В общем, добавьте свой открытый ssh-ключ на свой git-сервер, и все готово. Не имеет значения, github, gitlab или что-то еще.

Marc 23.04.2024 15:59

@Marc, я изменил имя хоста в ~/ssh/config на «Host github» и «HostName github.com». А какой правильный формат команды rebase? Я пытаюсь использовать множество вариантов, моя последняя попытка вообще без конфигурации — git pull --rebase origin dev Alex-1347:[email protected]‌​m/… . Ответ: «фатально: неверная спецификация»

Viacheslav 23.04.2024 16:36
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
9 541
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вам необходимо добавить содержимое вашего файла публичного ключа SSH ~/.ssh/id_rsa.github.pub в https://github.com/settings/keys

Спасибо. К сожалению, я загрузил свой открытый ключ на Github, обновил вопрос и экран загрузки по этому поводу.

Viacheslav 23.04.2024 16:30

Вам нужно установить его с помощью ssh-ключа вместо имени пользователя/пароля. Просто выполните следующие действия, и вы быстро настроите свой SSH-ключ:

  • Создайте новый ключ SSH (или пропустите этот шаг, если ключ у вас уже есть) ssh-keygen

  • Как только вы установите ключ в каталоге home/.ssh (или Users/<your user>.ssh под Windows), откройте его и скопируйте содержимое.


Как добавить ключ SSH в учетную запись GitHub?

  • Войдите в учетную запись GitHub

  • Нажмите на свое имя пользователя в github (изображение профиля в правом верхнем углу)

  • Нажмите на SSH and PGP Keys

  • Нажмите на New SSH key

  • Вставьте свой ключ и сохраните

И все готово:-)

Теперь вам нужно снова выполнить git pull.

Спасибо. К сожалению, я загрузил свой открытый ключ на Github, обновил вопрос и экран загрузки по этому поводу.

Viacheslav 23.04.2024 16:30

Если да, попробуйте это, а затем потяните еще раз git config --global --unset credential.helper

CodeWizard 23.04.2024 16:39

for 'git pull --rebase origin dev Alex-1347:[email protected]‌​m/…" У меня есть ответ "фатальный: недействительная ссылка"

Viacheslav 23.04.2024 16:42

и для «git pull --rebase origin dev gitserv@gitserv:<company>/<repository>.git» git только спрашивает у меня логин/пароль, и тогда это не удалось

Viacheslav 23.04.2024 16:44

Вы можете перейти в дискуссионную комнату

CodeWizard 23.04.2024 16:49

Или попробуйте сначала сбросить его на уровне системы: git config --system --unset credential.helper

CodeWizard 23.04.2024 16:49

Давайте продолжим обсуждение в чате.

CodeWizard 23.04.2024 16:50

Вам будет предложено ввести имя пользователя и пароль, поскольку вы установили origin на https://github.com/company/repository.git. HTTPS-соединения используют имя пользователя и токен, а не ключи SSH.

Если вы хотите использовать SSH для отправки и извлечения, то git remote set-url origin git@gitserv:company/repository изменится origin на использование SSH с указанной вами конфигурацией gitserv.

Хорошо, Джим, ты прав. Но почему я получаю сообщение «fatal: недопустимая ссылка» для «git pull --rebase origin dev Alex-1347:[email protected]/<company>/…» и запрос имени пользователя для «git pull --rebase origin dev gitserv@gitserv:<company>/<repository>.git» — у вас есть идеи?

Viacheslav 23.04.2024 20:12
Alex-1347:[email protected]/... не является допустимым URL-адресом, насколько известно Git, поэтому Git интерпретировал его как ссылку, но поскольку в вашем репозитории нет ссылки с таким именем, он отображается как «недопустимая спецификация ссылки». git@gitserv:company/repository — действительный URL-адрес, но поскольку origin по-прежнему указывает на HTTPS, вам будет предложено ввести учетные данные HTTPS.
Jim Redmond 23.04.2024 22:34

«git pull --rebase origin dev gitserv@gitserv:<company>/<repository>» это моя первая идея. По этому запросу я получаю не более чем запрос логина и пароля и ошибку о том, что Git не поддерживает логин/пароль. И не более того. Тупик.

Viacheslav 25.04.2024 19:34

Вы читали мой ответ?

Jim Redmond 25.04.2024 22:53

да, я начал с этого момента, но получил только запрос логина/пароля

Viacheslav 02.05.2024 11:04

Вам действительно стоит прочитать это первое предложение еще раз. Возможно, сделайте это дважды.

Jim Redmond 02.05.2024 19:05
Ответ принят как подходящий

Сначала нужно проверить, что видит ваша учетная запись github

  ssh -T [email protected]

Лучше всего создать новую пару ключей.

 ssh-keygen -t ed25519 -C "EMAIL-for-your-Github-login"

и только после того, как любой другой пользователь операции скажет в этой теме - добавьте свой ключ к ключу SSH и затем

 git remote add origin [email protected]:xxxxxx/yyyyyyyyy.git
 git push --force [email protected]:xxxxxx/yyyyyyyyy.git

моя текущая конфигурация Github

Host github
   HostName github.com
   IdentityFile ~/.ssh/id_rsa
   IdentitiesOnly yes 
   AddKeysToAgent yes

и ошибка другого ответа - пропустить первые два шага, что является самым важным шагом
этот шаг можно пропустить только для новичков и пользователей LOL, у которых есть только одна учетная запись Github. Конечно, любой настоящий программист использует каждую учетную запись для любого нового проекта, чтобы предотвратить незаконное отслеживание проектов и деятельности программиста.

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