質問: ssh公開鍵-サポートされる認証方法はありません(サーバーは公開鍵を送信しました) ネットワークがブリッジに設定された仮想マシンに12.10サーバーがセットアップされています(基本的に、スイッチに接続されたコンピューターとして表示されます)。apt-get経由でopensshdをインストールし、puttyを使用してユーザー名とパスワードを使用してサーバーに接続できました。次に、公開/秘密キー認証を使用するように設定しました。私は次のことをしました: puttygenを使用してキーを生成しました。 公開キーを/etc/ssh/myusername/authorized_keysに移動しました(暗号化されたホームディレクトリを使用しています)。 sshd_configを次のように設定します。 pubkeyauthentication yes authorizedkeysfile /etc/ssh/%u/authorized_keys strictmodes no passwordauthentication no usepam 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-1023 checking blacklist file /etc/ssh/blacklist.rsa-1023 temporarily_use_uid: 1000/1000 (e=0/0) trying public key file /etc/ssh/username/authorized_keys fd4 clearing o_nonblock restore_uid: 0/0 failed publickey for username from 192.168.1.7 port 14343 ssh2 received disconnect from 192.168.1.7: 14: no supported authentication methods available [preauth] do_cleanup [preauth] monitor_read_log: child log fd closed do_cleanup pam: cleanup なぜこれが起こっているのですか、どうすれば修正できますか?
回答: 問題が解決しました:公開鍵ファイルに問題があったようです。 puttygenは、次のような公開鍵ファイルを作成します。---- begin ssh2 public key ---- comment: "rsa-key-20121022" aaaab3nzac1yc2eaaaabjqaaaieahgf6giumy8fj1+cnapnsy1n2yslkyz72yvwu a6n1nfpbklz1+dsimg4rctlcf34m/tw5yz+nudaw2aebxq32fpgw7saoixktkyoh tr7mmimitjkoscrjh1kqalpspi8rglt/bp67ql2szwvuffmzhisryr0ezc4rxp/u vobrje8= ---- end ssh2 public key ---- ただし、これは機能しないため、puttygenでキーを開き、そこからコピーする必要があります(これにより、キーは正しい形式で1行になります)。ssh-rsa aaaab3nzac1yc2eaaaabjqaaaieahgf6giumy8fj1+cnapnsy1n2yslkyz72yvwua6n1nfpbklz1+dsimg4rctlcf34m/tw5yz+nudaw2aebxq32fpgw7saoixktkyohtr7mmimitjkoscrjh1kqalpspi8rglt/bp67ql2szwvuffmzhisryr0ezc4rxp/uvobrje8= rsa-key-20121022 これをauthorized_keysに貼り付ければ、動作するはずです。