SSH公開鍵-サポートされている認証方法はありません(サーバー送信公開鍵)

ネットワークがbridgedに設定された仮想マシンに12.10サーバーが設定されています(基本的にはスイッチに接続されたコンピュータと見なされます)。

Opensshdを経由してインストールしました apt-get そして、私のユーザー名とパスワードでputtyを使用してサーバーに接続することができました。

私はそれを公開/秘密鍵認証を使用するようにしようとしました。 私は次のことをしました:

  1. PuttyGenを使用してキーを生成しました。
  2. 公開鍵を次の場所に移動しました /etc/ssh/myusername/authorized_keys (私は暗号化されたホームディレクトリを使用しています)。
  3. セットアップ sshd_config そうのように:

    PubkeyAuthentication yesAuthorizedKeysFile /etc/ssh/%u/authorized_keysStrictModes noPasswordAuthentication noUsePAM yes

PuttyまたはWinSCPを使用して接続すると、サポートされている認証方法が利用できません(サーバーが公開鍵を送信しました)というエラーが表示されます。

私が実行した場合 sshd デバッグモードでは、私は参照してください:

PAM: initializing for "username"PAM: setting PAM_RHOST to "192.168.1.7"PAM: setting PAM_TTY to "ssh"userauth-request for user username service ssh-connection method publickey [preauth]attempt 1 failures 0 [preauth]test whether pkalg/pkblob are acceptable [preauth[Checking blacklist file /usr/share/ssh/blacklist.RSA-1023Checking blacklist file /etc/ssh/blacklist.RSA-1023temporarily_use_uid: 1000/1000 (e=0/0)trying public key file /etc/ssh/username/authorized_keysfd4 clearing O_NONBLOCKrestore_uid: 0/0Failed publickey for username from 192.168.1.7 port 14343 ssh2Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]do_cleanup [preauth]monitor_read_log: child log fd closeddo_cleanupPAM: cleanup

なぜこれが起こっていて、どうすればこれを修正できますか?

問題は解決しました:

私の公開鍵ファイルに問題があったようです。 PuttyGenは次のような公開鍵ファイルを作成します:

---- BEGIN SSH2 PUBLIC KEY ----Comment: "rsa-key-20121022"AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8=---- END SSH2 PUBLIC KEY ----

ただし、これは機能しないため、PuttyGenでキーを開き、そこからコピーする必要があります(これにより、キーは正しい形式で1行になります):

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022

これを貼り付けます authorized_keys その後、それは動作するはずです。

  1. を編集するには、 /etc/ssh/sshd_config ファイル。
  2. 変更 PasswordAuthenticationChallengeResponseAuthenticationyes.

3a.sshを再起動します。 /etc/init.d/ssh restart.
または
3b.よりよく使用して下さい service sshd restart

私が持っていた頭痛で他の誰かを助けるかもしれないことを望むちょうど先端。 F21は、ファイルを保存するのではなく、puttygenウィンドウからキーをコピーする必要があるのは正しいですが、コピーした後、キーが機能するかどうかに大きな影 一部の編集者は、貼り付けるときにテキストを変更したり、改行やauthorized_keysファイルを無効にする何かをしたりします。

私が壊れる可能性が最も低いことがわかったのは、完全な文字列をエコーし、出力をファイルにリダイレクトすることです。 PuTTYを右クリックしてキー文字列をコマンドラインに貼り付けると、次のように動作します(上記の例で):

echo [right-click-to-paste-here] > /etc/ssh/username/authorized_keys

あなたはこれで終わるでしょう:

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022 > /etc/ssh/username/authorized_keys

>>>この方法のもう1つの利点は、上書きするのではなく追加するために使用することで、この方法で複数のキーを追加できることです。:

echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username

誰かを助けることを願っています。

私たちはすでに正しいタイプのキー(pemの代わりにppk)を使用していました。.

私たちの場合、サーバーユーザフォルダのauthorized_keysのファイル権限に問題がありました。 それは-rw-r--r--でなければなりません。.. それは-rw-rw-rでした--

sshはファイルパーマについて非常に気難しいです。

解決済み:

  1. PuttyGENをダウンロードし、公開鍵と秘密鍵を生成する必要があります。
  2. 秘密鍵にパスワードを割り当てました。
  3. >>>次に、puttyで秘密鍵を設定します。 Putty-SSH-Auth-あなたのプライベートを参照します。
  4. 秘密鍵と公開鍵のパスが同じであることを確認します。
  5. サーバー上で公開鍵を設定する必要があります。 (私の場合、私はサーバーの男と話をし、彼が私の公開鍵をサーバーに追加できるかどうか尋ねました)。 接続の反対側(サーバー)に公開鍵が必要です。

私の場合、その理由は秘密鍵ファイル(。ppk)はPutty認証エージェントであるPageantで削除されていました。 私はちょうどそこにページェントに再びそれを更新し、接続はその後完全に働いた。

私の場合、私は2つのAWSインスタンスを持っています。 そのうちの1つは完璧に動作しており、もう1つはIntellij Ideaを介して接続するときに動作していますが、Puttyからは動作しませんでしたが、最初は動作して だから私の場合、それはputtyについての何かでなければなりません