Rootユーザーの公開鍵を使用してsshログインをセットアップでき、非rootユーザーにも同じロジックを適用しようとしました。私はこの問題を無駄にトラブルシューティングしようとしました。ローカルマシンとリモートサーバーの両方にCentOSを使用しています。
これが私のリモートサーバーである私のsshd_configファイルの要点です、
RSAAuthentication yes
PublicKeyAuthentication yes
AuthorizedKeysFile /etc/ssh/user/authorized_keys
PasswordAuthentication no
UsePAM no
PermitRootLogin without-password
Centosでのホームディレクトリの暗号化について読んだので、許可されたキーファイルをユーザーのホームから/ etc/ssh/user/authorized_keysに移動しました。
非rootユーザーに関連付けられているすべてのファイル/ディレクトリの所有権も変更しました。
同じ構成がrootリモートログインに対して非常にうまく機能するため、構成に欠落している手順がわかりません。
構成ファイルのauthorized_keysエントリを削除します。 sshdを再起動します。非rootユーザーのホームディレクトリに.sshディレクトリを作成します。 〜/ .ssh/authorized keysというファイルにキーを入れます。ディレクトリ0700とauthorized_keysファイル0644を作成します。rootユーザーについても同じことを行います。
明確にするために、OriginマシンのPUBLICキーファイル(例:〜/ .ssh/id_rsa.pub)を宛先マシンの〜/ .ssh/authorized_keysに置く必要があります。
〜/ .ssh/id_rsaにコピーした場合、それは機能しません。最新のsshdは、宛先マシンで〜/ .sshをモード700、〜/ .ssh/authorized_keysをモード600にすることも要求します。
余談ですが、可能であれば、sshを介したrootログインを許可する代わりにSudoを使用してください。