次のような場合でも、SSHを実行するにはまだパスワードが必要なシステムがあります。
- 私の公開鍵はリモート
authorized_keys
サーバー上のファイルに正しく存在します。 id_rsa
私の秘密鍵は私の.ssh
ディレクトリに保存されます。- ローカルクライアントとリモートサーバーに対する権限が正しい。これには、ホームディレクトリ、
.ssh
ディレクトリ、authorized_keys
ファイル、キーファイル自体が含まれます。 - SELinux はクライアントとサーバーの両方で無効になります。
また、/var/log/secure
サーバーはログインしようとするたびに次のエラーを報告します。
sshd[17110]: error: Could not get shadow information for <USER>
実際のユーザー名を文字列に変更しました<USER>
。
この問題の原因は何であり、SSHキーが正しく機能するようにするにはどうすればよいですか?
ベストアンサー1
問題は公開/秘密鍵の不一致です。クライアントシステムで。私は以下を実行してこの問題を解決しました。
$ cd ~/.ssh
$ ssh-keygen -y -f id_rsa > id_rsa.pub
これにより、既存の秘密鍵に対応する公開鍵が生成され、ファイルに書き込まれ、公開/秘密鍵がid_rsa.pub
再照合されます。
私が見つけたいくつかのStack Exchangeの答えで私の質問に対する答えが見つからなかったので、ここで私の質問に答え/質問することにしました。どうやってこれが起こったのですか?過去にSSHキーを持っていましたが、ssh-keygen
ある時点で誤って再実行したことが起こりました。これにより、新しい公開/秘密鍵ペアが生成されます。私はこれに気づき、古い秘密鍵を入れ直して問題を解決しようとしました。サーバー上のファイルにはまだ古い公開鍵があるため、authorized_keys
変更する必要はありません。残念ながら、クライアントの公開鍵を変更しなかったため、現在の状況が発生しました。