получить клон, используя нестандартный ключ S SH - PullRequest
1 голос
/ 27 мая 2020

Мне нужно использовать GitHub моей компании с моего локального компьютера.
Я предпочитаю использовать S SH.

У меня есть личная учетная запись GitHub, которая уже использует S SH с локальным ключом по умолчанию (~ / .ssh / id_rsa.pub).
Я использую Windows.

Я вошел в систему с учетной записью своей компании и могу видеть репозитории.
Если я сделаю git clone <git url> или git clone <https url>, я получаю: «репозиторий не найден».

С git -T git@github.com я вижу, что я авторизован с помощью моей личной учетной записи GitHub.

Я попытался зарегистрировать локальный ключ S SH по умолчанию (id_rsa.pub) в корпоративной учетной записи GitHub, но там говорится, что ключ уже используется (я полагаю, это относится к моей личной учетной записи).
Я зарегистрировал еще один ключ (id_rsa_test.pub), но не могу найти в git параметров для передачи другого ключа / учетных данных?

Как я могу использовать git с S SH с моего локального P C без замены моего личного ключа S SH на c S SH key?

В качестве временного решения я попытался поместить это в конфигурацию GIT, но не работает (по-прежнему ошибка «Репозиторий не найден»)

Host GitHub
    HostName github.com
    User alex-company-user
    IdentityFile c:\Users\alex\.ssh\new_key_rsa

ssh-add <path to the new key file> возвращает «Ошибка подключения к агенту: нет такого файла или каталога» Я думаю, потому что на этом компьютере у меня не установлено Git - Bash. (как я понял, практически обязательно иметь постоянно работающий s sh -агент?)

GIT_SSH_COMMAND='ssh -i C:\Users\alex\.ssh\new_key_rsa' возвращает «'GIT_SSH_COMMAND' не распознается как внутренняя или внешняя команда»

[Временное решение: GitHub Desktop]

В качестве временного решения я использую GitHub Desktop .
Он ВСЕГДА аутентифицируется в браузере (также после того, как вы передали user / password и ввел проверочный код, полученный по SMS !!), и он ВСЕГДА использует пользователя, вошедшего в систему в браузере.
Итак, я ввожу имя пользователя и пароль учетной записи моей компании, нажимаю «войти», получаю SMS с кодом подтверждения, ОК. В нем говорится, что я должен пройти аутентификацию в браузере, нажать "продолжить" ... он открывает браузер, и я автоматически аутентифицируюсь в своей личной учетной записи!
Итак, мне нужно выйти из браузера из моей личной учетной записи, повторить процедуру после входа в систему с учетной записью моей компании в браузере.
(я открыл для этого проблему)
Это позволяет мне выбрать репозиторий для клонирования из списка. Я клонировал его и обнаружил, что он использует URL-адрес HTTPS (repo / .git // config):

[remote "origin"]
    url = https://github.com/<my-company-repo>.git

(возможно, я могу изменить это на S SH, я попробую) Итак , Надеюсь, это решение не требует от меня частой смены пользователя в браузере. Мне все еще нравится знать, как это сделать, используя git напрямую (без сторонних инструментов).

1 Ответ

1 голос
/ 28 мая 2020

В качестве временного решения я попытался поместить это в конфигурацию GIT, но не работает

Чтобы использовать эту конфигурацию, вам необходимо:

  • изменить пользователя на git (соединение S SH с GitHub всегда использует 'git': закрытый ключ аутентифицирует фактического пользователя)
  • изменить ваш URL

Итак:

Host GitHub
    HostName github.com
    User git <<=== not alex!
    IdentityFile c:\Users\alex\.ssh\new_key_rsa

И:

cd C:\path\to\repo
git remote set-url GitHub:<me>/<myrepo>

Ключевая часть, если использовать правильный закрытый ключ в ассоциации с git@github.com

Здесь запись конфигурации называется GitHub (но ее можно было бы назвать xxx).
Вот почему URL-адрес должен стать GitHub:<company>/<comany-repo>.git, чтобы использовать эту ~/.ssh/config запись "GitHub ".

Вы можете определить множество записей для одного и того же git@github.com, как я проиллюстрировал 8 лет go в« Как работать с личным репозиторием GitHub с офисного компьютера, у которого S SH ключ уже добавлен в рабочую учетную запись GitHub?"

...