web-dev-qa-db-ja.com

公開鍵認証の許可が拒否されました(公開鍵)

この投稿 に従ってUbuntu 14.04を実行しているサーバーで公開キー認証を設定しようとしています。これまでに次のことを行いました。

  1. ssh-keygen -t rsaを使用して、ホストで生成されたRSAキー。

    キー(id_rsaおよびid_rsa.pub)が〜/ .sshディレクトリに保存されるようになりました。

  2. ssh-copy-id <username>@<Host>を使用してサーバーにキーをコピーしました

  3. / etc/ssh/sshd_configファイルを編集して、PasswordAuthentication no行を追加しました。

  4. /etc/init.d/ssh restartでsshを再起動しました。

ホストからサーバーにsshしようとすると、次のメッセージが表示されます(サーバーアドレスやホスト名などの詳細を編集しました)。

$:ssh -v user @ domain 
 OpenSSH_6.6.1、OpenSSL 1.0.1f 6 Jan 2014 
 debug1:構成データの読み取り/home/Host/.ssh/config
debug1:構成データの読み取り/etc/ssh/ssh_config
debug1:/ etc/ssh/ssh_config行19:* 
 debug1:ドメイン[192.168.xx.xx]ポート22への接続オプションの適用.____。] debug1:接続が確立されました。
 debug1:IDファイル/home/Host/.ssh/id_rsaタイプ1 
 debug1:IDファイル/home/Host/.ssh/id_rsa-certタイプ-1 
 debug1:識別ファイル/home/Host/.ssh/id_dsaタイプ-1 
 debug1:識別ファイル/home/Host/.ssh/id_dsa-certタイプ-1 
 debug1:IDファイル/home/Host/.ssh/id_ecdsaタイプ-1 
 debug1:IDファイル/home/Host/.ssh/id_ecdsa-certタイプ-1 
 debug1:IDファイル/ home/Host/.ssh/id_ed25519 type -1 
 debug1:IDファイル/home/Host/.ssh/id_ed25519-cert type -1 
 debug1:プロトコル2.0の互換モードを有効にする
 debug1:ローカルバージョン文字列SSH-2.0-OpenSSH_6.6.1p1 Ubuntu -2ubuntu2.8 
 debug1:リモートプロトコルバージョン2.0、リモートソフトウェアバージョンOpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 
 debug1:一致:OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 pat OpenSSH_6.6.1 * compat 0x04000000 
 debug1:SSH2_MSG_KEXINIT sent 
 debug1:SSH2_MSG_KEXINIT received 
 debug1:kex:server-> client aes128-ctr [email protected] none 
 debug1:kex:client-> server aes128-ctr [email protected] none 
 debug1:SSH2_MSG_KEX_ECDH_INITを送信
 debug1:予想SSH2_MSG_KEX_ECDH_REPLY 
 debug1:サーバーホストキー:ECDSA 16:00:b8:c5:89:af:e9:50:22:85:76:6d:65:1c:aa:b4 
 debug1:ホスト 'domain'は既知であり、 ECDSAホストキー。
 debug1:/home/Host/.ssh/known_hosts:2
debug1:ssh_ecdsa_verifyにキーが見つかりました。 debug1:SSH2_MSG_NEWKEYS 
 debug1:SSH2_MSG_NEWKEYSが受信されることを期待する
 debug1:SSH2_MSG_SERVICE_REQUESTが送信される
 debug1:SSH2_MSG_SERVICE_ACCEPT received 
 debug1:継続可能な認証:publickey 
 debug1:次の認証方法:publickey 
 debug1:RSA公開キーの提供:/home/Host/.ssh/id_rsa
 debug1:続行できる認証:publickey 
 debug1:秘密鍵の試行:/home/Host/.ssh/id_dsa
debug1:秘密鍵の試行:/home/Host/.ssh/id_ecdsa 
 debug1:秘密鍵の試行:/home/Host/.ssh/id_ed25519
debug1:これ以上の認証方法は試行しません。
許可が拒否されました(公開キー)。

this に従って問題を修正し、次のことを行いました。

  1. 保証された権限は、OpenSSH標準によってあまり開かれていない。

    chmod go-w ~/
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  2. ホストコンピューターでssh-copy-id [email protected]によってauthorized_keysファイルを作成し、authorized_keysファイルをサーバーにコピーし、必要に応じて所有権と権限を変更しました。

それでも問題は解決しません。 Publickey認証を使用する前に、パスワードを使用してサーバーに正常にsshできました。他の誰かが同様の問題に直面しましたか?

編集:

後でsshしようとしたときに、出力にAgent admitted failure to sign using the key.という新しい行が追加されました。一部のグーグルは this の問題を引き起こしました。この問題はgnome-keyring干渉と呼ばれます。 SSH_AUTH_SOCK=0 ssh user@domainを試したとき、公開鍵認証を使用してサーバーに正常にログインできました。あなたの貢献に感謝します。

3
lets_try

ssh -i ~/.ssh/key_name user@domainを試したときに、サーバーからAgent admitted failure to sign using the key.と言った応答がありました。これは明らかにgnome-keyring干渉の問題によるものであり、修正はこの link で説明されています。

一時的な修正はSSH_AUTH_SOCK=0 ssh user@domainを試すことです。これでサーバーにsshできる場合は、上記のリンクの修正に従ってください。

3
lets_try