LinuxでSSHのパスワードなしログインが失敗する場合の解決方法は何ですか。
LinuxでSSHのパスワードなしログインがうまくいかない場合は、いくつかの一般的な問題と解決方法があります。
- 目標ホストのSSHサーバー構成を確認してください。SSHサーバーが公開鍵認証を許可していることを確認してください。ターゲットホストの/etc/ssh/sshd_configファイルを編集して、以下の設定がコメントアウトされていないか、またはyesに設定されているか確認してください。
- RSA認証は有効です
公開鍵認証は有効です
AuthorizedKeysFileは.ssh/authorized_keysです - SSHサーバーを再起動してください(sudo systemctl restart sshd)。
- 目標ホストのユーザーディレクトリと権限に問題があるかどうかを確認してください:ターゲットホスト上で、.sshディレクトリとauthorized_keysファイルの権限を正しく確認してください。.sshディレクトリの権限は700で、authorized_keysファイルの権限は600である必要があります。次のコマンドを使用して権限を修正できます。
- ~/.sshに対してchmod 700を実行してください。
~/.ssh/authorized_keysに対してchmod 600を実行してください。 - ローカルホストのSSHキーと設定を確認してください。正しいSSHキーペアがローカルホストにあり、秘密キーが変更されていないか破損していないことを確認してください。SSHキーペアを確認および生成するために以下のコマンドを使用できます。
- ホームディレクトリの.sshディレクトリ内を表示するには、ls -al ~/.sshを入力します。その後、ssh-keygen -t rsa -b 4096を使用して、RSA暗号と4096ビットのキーを生成します。
- ローカルホストのSSH設定を確認してください。ローカルホストのSSH設定ファイル(通常は~/.ssh/config)に競合する設定がないか確認してください。競合する設定がある場合は一時的にファイル名を変更したり削除してから、SSHパスワードなしでのログインを再試行してください。
以上の方法が問題を解決しない場合は、SSHサーバーとクライアントのログファイルを確認して、詳細なエラー情報を取得する必要があるかもしれません。ターゲットホストでは、/var/log/auth.logファイルを、ローカルホストでは、/var/log/secureまたは/var/log/auth.logファイルを確認することができます(具体的な場所はLinuxディストリビューションによって異なります)。