Git пытается использовать глобальный пользователь, когда я пытаюсь нажать с SSH - PullRequest
0 голосов
/ 13 апреля 2019

Мой глобальный пользователь переопределяет моего локального пользователя git.

Вот полный контекст: у меня есть 2 учетные записи Github, поэтому я хотел установить ssh-ключи для этих репозиториев.

У меня естьперепробовал все эти руководства.

статья 1

статья 2

статья 3

статья 4

Вот мой ~/.ssh/config

# Personal GitHub
Host github.com
   HostName github.com
   User mirkancal
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa
   IdentitiesOnly yes
# Yazılım Kafe
Host github.com-yazilimkafe
   HostName github.com
   User yazilimkafe
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_yazilimkafe
   IdentitiesOnly yes

Мой git remote -v выход для репозитория yazilimkafe

origin  git@github.com-yazilimkafe:yazilimkafe/git-dersi.git (fetch)
origin  git@github.com-yazilimkafe:yazilimkafe/git-dersi.git (push)

Я добавил локальные имена пользователей и электронные письма соответственно.Related SO post 1 SO post 2

Вот мой локальный gitconfig

[user]
        name = yazilimkafe
        email = mirkancaliskan.dev@gmail.com

Так что я верю, что все готово, но когда я пытаюсьиспользовать git push origin master

Это дает мне следующее:

ERROR: Permission to yazilimkafe/git-dersi.git denied to mirkancal.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Я думаю, что на стороне ssh у меня нет проблем, но я не могу помешать своему глобальному пользователюне переопределять мой локальный пользователь в репо.У меня вопрос, как это сделать?Я делаю что-то не так в части SSH?

1 Ответ

1 голос
/ 14 апреля 2019

Расширение на решение, опубликованное здесь Нажмите на .git, но отказано не тому пользователю, наконец-то решено для вашей конкретной ситуации, я воспроизвел ваш сценарий, и это сработало для меня.

Настройка двух имен хостов GitHub

Шаг 1: Загрузите все свои идентификационные данные, используя ssh-add.

Шаг 2. Добавьте эти записи в .ssh/config

Host github-yazilimkafe
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_yazilimkafe

Host github-mirkancal
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa

Шаг 3. клонировать репозитории или установить удаленные URL с этими именами

git clone github-yazilimkafe:yazilimkafe/git-dersi.git
git clone github-mirkancal:mirkancal/some-project.git

На этом этапе вы сможете загружать и загружать в любую песочницу без каких-либо затруднений и без перезагрузки вашего промежуточного агента. Имя хоста заставит вашего агента предоставить правильную идентификационную информацию github при входе через ssh в эту изолированную программную среду.

Также используя имя github.com:

Если вы также хотите использовать имя хоста github.com, т. Е. Напрямую клонировать git@github.com/..., то вам нужно беспокоиться о порядке, в котором ваш агент ssh будет представлять ключи ssh. Порядок, в котором вы добавляете свои идентификационные данные с помощью ssh-add, не имеет значения. В моем случае .ssh/id_rsa был ключом по умолчанию, предоставленным моим агентом, но это не всегда так.

Если вы используете gnome-keyring, предложение об использовании отдельной папки в этом вопросе, похоже, поможет: https://unix.stackexchange.com/questions/429730/how-to-change-the-order-of-keys-in-gnome-keyring

Однако, используя мою установку Cygwin / OpenSSH агента ssh, я не смог установить .ssh/id_rsa_2 по умолчанию.

Так что в моем случае я должен использовать именованную запись в .ssh/config, чтобы использовать .ssh/id_rsa_2 с GitHub, но я могу использовать имя github.com, когда я хочу .ssh/id_rsa, мой первичный ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...