Warum ignoriert ssh meine ~ / .ssh / config? Kann nicht an github übergeben

640
Mike Pennington

Ich habe OpenSSH so konfiguriert, dass beim Anmelden bei github ein bestimmter Schlüssel verwendet wird.

[mpenning@mudslide .ssh]$ pwd /home/mpenning/.ssh [mpenning@mudslide .ssh]$ ls -la | grep config -rw-r--r-- 1 mpenning mpenning 473 Jan 23 09:49 config [mpenning@mudslide .ssh]$ head -n 4 config Host gh HostName github.com User git IdentityFile ~/.ssh/id_rsa_github [mpenning@mudslide .ssh]$ 

Wenn ich jedoch ssh auf github stelle, ohne explizit den privaten Schlüssel von github auf der CLI aufzurufen, schlägt die Authentifizierung fehl:

[mpenning@mudslide .ssh]$ ssh -F ./config git@github.com Permission denied (publickey). ^^^^^^^^ This used to work [mpenning@mudslide .ssh]$ 

Die einzige Möglichkeit, die Arbeit zu erzwingen, besteht darin, den privaten Schlüssel explizit aufzurufen, wenn ich ssh ...

[mpenning@mudslide .ssh]$ ls -la | grep github -r-------- 1 mpenning mpenning 3243 Nov 24 2016 id_rsa_github -rw-r--r-- 1 mpenning mpenning 743 Nov 24 2016 id_rsa_github.pub [mpenning@mudslide .ssh]$ ssh -i ./id_rsa_github git@github.com PTY allocation request failed on channel 0 Hi mpenning! You've successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed. [mpenning@mudslide .ssh]$ 

Meine configDatei hat gestern funktioniert ... Ich habe nichts daran geändert. Die configDatei zeigt bereits auf den richtigen privaten Schlüssel.

Plötzlich ignoriert ssh scheinbar meine github-config. Es wird nie der richtige private Schlüssel versucht ...

[mpenning@mudslide .ssh]$ ssh -v git@github.com 2>&1 | grep github debug1: Connecting to github.com [192.30.253.113] port 22. debug1: Host 'github.com' is known and matches the RSA host key. [mpenning@mudslide .ssh]$ 

Das funktioniert natürlich, aber ich sollte nicht -i verwenden müssen.

[mpenning@mudslide .ssh]$ ssh -i id_rsa_github -v git@github.com 2>&1 | grep github debug1: Connecting to github.com [192.30.253.113] port 22. debug1: identity file id_rsa_github type 1 debug1: identity file id_rsa_github-cert type -1 debug1: Host 'github.com' is known and matches the RSA host key. debug1: Offering RSA public key: id_rsa_github Authenticated to github.com ([192.30.253.113]:22). Connection to github.com closed. [mpenning@mudslide .ssh]$ 

Meine Fragen:

  • Was hat das gebrochen?
  • Wie kann ich es reparieren?
1
Abgesehen von der Antwort verwenden Sie immer `ssh-agent` /` ssh-add`. Daniel B vor 6 Jahren 0
@DanielB, welchen Vorteil haben ssh-agent / ssh-add gegenüber meinem Status Quo Mike Pennington vor 6 Jahren 0
Es ist einfach eine andere Art, mit der Authentifizierung mit öffentlichen SSH-Schlüsseln umzugehen. Es bietet einige kleinere Vorteile, wenn Sie die Passphrase eines Schlüssels nur einmal eingeben müssen (beim Aufruf von `ssh-add`). Daniel B vor 6 Jahren 0

1 Antwort auf die Frage

3
djsmiley2k

Sie rufen nicht an, um eine Verbindung zu dem Host herzustellen, den Sie in Ihrer Konfiguration definiert haben.

Verwenden Sie ssh ghnichtssh .... git@github.com

Aber warum? - Siehe unten:

[mpenning @ mudslide .ssh] $ ssh -F ./config git@github.com Berechtigung abgelehnt (publickey). ^^^^^^^^ Das hat früher funktioniert

Ich glaube nicht, dass es jemals so war (haben Sie überprüft, ob Sie die Geschichte verwenden?) Ich glaube du hast es benutztssh -F ./config gh

Sie haben den Host wie ghin Ihrer Konfiguration definiert:

Host gh HostName github.com User git IdentityFile ~/.ssh/id_rsa_github 

Sie sollten also einfach anrufen ssh gh. Sie können andere Argumente übergeben, wenn Sie den Inhalt Ihrer Konfiguration überschreiben möchten, z. B. wenn Sie einen anderen Benutzer verwenden möchten. Wenn Sie jedoch alle erforderlichen Variablen festgelegt haben, sollten Sie nur die Host-Variable verwenden und nichts weiter.

Um -F ./configehrlich zu sein, müssen Sie nicht einmal das Pass bestehen .

Ich kann nicht verstehen, warum dies seit Monaten funktioniert hat und heute fehlgeschlagen ist ... aber ich habe meinen Konfigurationsnamen von `` gh`` in `` github.com`` geändert Mike Pennington vor 6 Jahren 1
Ich bin froh, dass du es sortiert hast :) djsmiley2k vor 6 Jahren 0