サーバーで公開鍵認証をしばらく使用していますが、 github に接続しようとする新しい「クライアント」で問題が発生しています。多くのスレッドを読んで、権限が正しく設定されていることを確認し、githubの新しいキーを生成しました。私が直面している問題は、パスフレーズを設定していなくても、sshがパスフレーズを要求していることです。パスフレーズを入力しなかったことを100%確認するためにキーを作り直しました。
ssh -vvvは、次の関連出力を提供します。
debug1: Offering public key: /home/me/.ssh/github.pub
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Remote: Forced command: gerve mygithubusername c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp c3:71:db:34:98:30:6d:c2:ca:d9:51:a8:c6:1b:fc:f7
debug3: sign_and_send_pubkey
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/me/.ssh/github.pub':
PEM_read_PrivateKeyが失敗した理由を見つけるために検索しましたが、解決策が見つかりません。
エージェントなどは一切使用していません。 〜/ .ssh/configファイルを次のように構成します。
Host github
Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github.pub
前もって感謝します。
~/.ssh/config
でIdentityFile
オプションを使用する場合は、プライベートキーpublicではないを指定します。
man ssh_config
から:
IdentityFile
ユーザーのDSA、ECDSA、またはDSA認証IDが読み取られるファイルを指定します。デフォルトは、プロトコルバージョン1の場合は〜/ .ssh/identity、プロトコルバージョン2の場合は〜/ .ssh/id_dsa、〜/ .ssh/id_ecdsaおよび〜/ .ssh/id_rsaです。
したがって、~/.ssh/config
エントリは次のようになります。
Host github.com
Hostname github.com
User git
PubkeyAuthentication yes
IdentityFile /home/me/.ssh/github
この問題があり、カットアンドペーストエラーでした。独身者 %
記号がキーファイルの最後に追加されました(したがって、最後の行は-----END RSA PRIVATE KEY-----%
)。エラーやデバッグ情報など、キーの長さが間違っていたり、形式が正しくなかったことを示唆するものはありませんでしたが、sshはパスフレーズを要求しました。
私の場合、問題はSSHクライアントがED25519キーをサポートしていないことでした。解決策は、RSAキーを作成し、代わりに使用することです。
この問題は OpenSSH <6.5 (run ssh -V
)および PuTTY <0.68 で発生します。
これは、次のssh -vvv
の出力で確認できます。
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,[email protected]
debug2: kex_parse_kexinit: hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96
debug2: kex_parse_kexinit: hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: none,[email protected]
最初のブロックはクライアントがサポートするものを説明し、2番目はサーバーがサポートするもの です。ご覧のとおり、上半分には 'curve25519'の記述がありません。これは、クライアントがそれをサポートしていないことを示しています。
私のチームでは、これが発生しても、ローカルでは何の問題もありません。ユーザーのsshキーまたはアクセス、あるいはその両方が、ユーザーが接続しているサーバー(この場合はホスティングプラットフォーム)で正しく構成されていません。何らかの理由で、これにより、存在しないsshキーのプロンプトがトリガーされます。