GitHub authentifiziert sich als falscher SSH-Benutzer

Lesezeit: 2 Minuten

Ich habe 2 GitHub-Benutzer, beruflich und privat.

Jeder hat seinen eigenen ssh-Schlüssel: der persönliche ist zufällig id_rsa und der geschäftliche ist id_ed25519. Jeder Schlüssel ist dem richtigen Konto in GitHub zugeordnet.

Als ich an Arbeitssachen arbeitete, änderte ich mich ~/.ssh/config um den Arbeits-SSH-Schlüssel für alles zu verwenden (z. B. Pushen an [email protected]):

UseRoaming no

Host *
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_ed25519

Jetzt möchte ich mein persönliches Konto wieder verwenden. ich habe mich verändert IdentityFile zurück zu ~/.ssh/id_rsaaber wenn ich versuche, Änderungen an ein Repo zu pushen, wird es als falscher Benutzer authentifiziert.

git remote -v zeigt nichts, was auf die Verwendung des Arbeits-SSH-Schlüssels hindeuten würde:

origin  [email protected]:redacted-user/repo.git (fetch)
origin  [email protected]:redacted-user/repo.git (push)

ssh [email protected] authentifiziert sich tatsächlich als der falsche Benutzer:

Hi [work account]! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

Wie authentifiziert GitHub meinen Benutzer?

Ich habe bestätigt, dass es keine spezifischen Einträge für github.com in der ssh-Konfiguration gibt, und ich habe bestätigt, dass meine id_rsa mit meinem persönlichen GitHub-Konto verknüpft ist.

  • Ich habe auch die Verwendung bestätigt ssh [email protected] -v dass es mit der Regel übereinstimmt und id_rsa verwendet. id_rsa ist nicht mit dem authentifizierten Konto verknüpft.

    – Amacrobert

    3. März um 23:08 Uhr

  • @phd Diese Links beantworten die Frage nach der gleichzeitigen Verwendung verschiedener GitHub-Konten. Sie gehen nicht auf mein Szenario ein. Ich habe gesucht, bevor ich gepostet habe.

    – Amacrobert

    3. März um 23:19 Uhr

Wie authentifiziert GitHub meinen Benutzer?

Durch den im GitHub-Konto registrierten öffentlichen Schlüssel, der mit dem lokal verwendeten privaten Schlüssel übereinstimmt.

Probieren Sie ein ssh -Tv [email protected] aus, um zu verstehen, welcher private Schlüssel tatsächlich verwendet wird.

Ich ziehe es vor, die Remote-URL zu ändern, um sicherzustellen, dass ich das eine oder andere Konto verwende.

In meiner Datei ~/.ssh/config würde ich das zweite Konto registrieren als:

Host ghuser2
  User git
  hostname github.com
  IdentityFile ~/.ssh/secondUserKey

Dann:

ssh -T ghuser2
cd /path/to/local/repo
git remote set-url origin ghuser2:<aUser>/<aRepo>
git ls-remote # for testing

Beachten Sie, dass es die nicht ändert Urheberschaft der in diesem Repository vorgenommenen Commits.
Wenn git config user.name immer noch ist user1und Sie machen neue Commits, diese werden auf GitHub als angezeigt user1auch wenn Sie sich (beim Pushen) als authentifizieren user2.

Benötigen Sie dies nach dem Ändern der ssh-Konfiguration:

eval $(ssh-agent)

1014510cookie-checkGitHub authentifiziert sich als falscher SSH-Benutzer

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy