sshが私の〜/ .ssh / configを無視するのはなぜですか? githubにコミットできません


1

githubにログインするときにOpenSSHが特定のキーを使うように設定しました。

[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]$

しかし、CLIでgithubの秘密鍵を明示的に呼び出さずにgithubにSSH接続すると、認証が失敗します。

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

強制的に動作させることができる唯一の方法は、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]$

俺の config ファイルは昨日働いた...私はそれの中で何も変更していない。の config ファイルはすでに正しい秘密鍵を指しています。

突然、sshは私のgithubの設定を無視しているようです。正しい秘密鍵を試すことすらありません...

[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]$

明らかにこれは動作しますが、-iを使用する必要はありません。

[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]$

私の質問

  • 何がこれを破ったの?
  • どうすれば修正できますか?

答えが言うこととは別に、あなたはいつも使う ssh-agent / ssh-add
Daniel B

@DanielB、ssh-agent / ssh-addが私の現状に勝る利点は何ですか
Mike Pennington

SSH公開鍵認証を処理するのは、単に別の方法です。鍵のパスフレーズを一度だけ入力する必要があるなど、いくつかの小さな利点があります ssh-add
Daniel B

回答:


3

あなたはあなたの設定で定義したホストへの接続を要求していません。

つかいます ssh gh ではない ssh .... git@github.com

しかし、なぜ? - 下記参照:

[mpenning @ mudslide .ssh] $ ssh -F ./config git@github.comパーミッション   拒否されました(公開鍵)。 ^^^^^^^^これはかつて働いていた

私はそれが今までしなかったと思います(あなたは歴史を使ってチェックしましたか?)私はあなたが使ったと思います ssh -F ./config gh

ホストを次のように定義しました gh あなたの設定で:

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

それであなたは単に電話をしているべきです ssh gh。必要な変数をすべて設定したので別のユーザーを使用したい場合など、設定内の設定を上書きする場合は、他の引数を渡すことができます。Host変数を使用するだけで済みます。

あなたも通過する必要はないはずです -F ./config 正直に言うと。


1
なぜこれが数カ月間動作して今日失敗したのか理解できません…しかし私の設定名を ghgithub.com 働いた
Mike Pennington

並べ替えてもらえてよかった:)
djsmiley2k
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.