it-swarm-ja.com

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

Githubにログインするときに特定のキーを使用するようにOpenSSHを構成しました..。

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

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

[[email protected] .ssh]$ ssh -F ./config [email protected]
Permission denied (publickey).    ^^^^^^^^ This used to work
[[email protected] .ssh]$

強制的に機能させる唯一の方法は、SSHを実行するときに秘密鍵を明示的に呼び出すことです...

[[email protected] .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
[[email protected] .ssh]$ ssh -i ./id_rsa_github [email protected]
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.
[[email protected] .ssh]$

私のconfigファイルは昨日機能しました...何も変更していません。 configファイルはすでに正しい秘密鍵を指しています。

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

[[email protected] .ssh]$ ssh -v [email protected] 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.
[[email protected] .ssh]$

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

[[email protected] .ssh]$ ssh -i id_rsa_github -v [email protected] 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.
[[email protected] .ssh]$

私の質問:

  • 何がこれを壊したのですか?
  • どうすれば修正できますか?
2
Mike Pennington

構成で定義したホストに接続するために呼び出しているのではありません。

ssh ghではなくssh .... [email protected]を使用してください

しかし、なぜですか?-以下を参照してください:

[mpenning @ mudslide .ssh] $ ssh -F ./config [email protected]アクセスが拒否されました(公開鍵)。 ^^^^^^^^これは以前は機能していました

今までになかったと思います(履歴を使って確認しましたか?)。 ssh -F ./config ghを使用したと思います

構成でホストをghとして定義しました。

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

したがって、単にssh ghを呼び出す必要があります。別のユーザーを使用したい場合など、構成内の内容をオーバーライドする場合は、他の引数を渡すことができますが、必要なすべての変数を設定したので、Host変数のみを使用する必要があります。

正直に言うと、-F ./configを渡す必要すらありません。