ネットワークがブリッジに設定された仮想マシンに12.10サーバーがセットアップされています(基本的に、スイッチに接続されたコンピューターとして表示されます)。
apt-get
経由でopensshdをインストールし、PuTTYを使用してユーザー名とパスワードを使用してサーバーに接続できました。
次に、公開/秘密キー認証を使用するように設定しました。私は次のことをしました:
/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
に貼り付ければ、動作するはずです。
/etc/ssh/sshd_config
ファイルを編集します。PasswordAuthentication
およびChallengeResponseAuthentication
をyes
に変更します。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
この方法の別の利点は、上書きするために>ではなく>>を使用してこの方法で複数のキーを追加できることです。次に例を示します。
echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username
それが誰かを助けることを願っています。
すでに正しいタイプのキー(pemではなくppk)を使用していました。
私たちのケースでは、サーバーのユーザーフォルダーのauthorized_keysのファイルパーミッションに問題がありました。 -rw-r--r--でなければなりません... -rw-rw-r--でした
sshはファイルのパーマについて非常に細心の注意を払っています。
私の場合、理由は、PuTTY認証エージェント、つまりPageantで秘密鍵ファイル(.ppk)が削除されていたためです。そこで再びPageantに更新しましたが、その後接続は完全に機能しました。
解決済み: