質問: sshは、鍵ベースの認証をセットアップした後もパスワードを要求します aマシンからbマシンにrootユーザーのキーベースの認証を正常に作成しました。次に、aマシンと同じようにbマシンで新しいユーザーを作成しました。彼をuserと呼びましょう。私は彼のためにbマシンでホームディレクトリを作成しました/home/userそして、マシンaからマシンbへのキーベースの認証を作成します。だから、私はマシンで走った ssh-keygen -t rsa、すべてのパスを受け入れたので、/home/user/.ssh/id_rsa、フレーズなし ssh-copy-id -i /home/user/.ssh/id_rsa.pub user@bmachinesip、パスワードを入力してマッサージを受けました マシンにログインしてみてくださいbla bla bla したがって、すべてが問題ないようです。しかし、接続しようとしたときにssh user@bmachinesipパスワードを求められました。ログを見て試してみましたssh -vvv user@bmachinesipそしてここに出力の一部があります:debug1: authentications that can continue: publickey,password debug3: start over, passed a different list publickey,password debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: next authentication method: publickey debug1: offering public key: /home/user/.ssh/id_rsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: authentications that can continue: publickey,password debug1: trying private key: /home/user/.ssh/id_dsa debug3: no such identity: /home/user/.ssh/id_dsa debug2: we did not send a packet, disable method debug3: authmethod_lookup password debug3: remaining preferred: ,password debug3: authmethod_is_enabled password debug1: next authentication method: password user@bmachinesip's password: それで、誰かが私が間違ったことをしたり、私が変更すべきことを教えてもらえますか?多分問題は権限にあります、ここにあります:マシン上:drwx------ 2 user user size date time .ssh -rw------- 1 user user 1675 2011-10-31 14:36 id_rsa -rw-r--r-- 1 user user 413 2011-10-31 14:36 id_rsa.pub そしてbマシンで:drwx------ 2 user defaultgroup size date time .ssh -rw------- 1 user defaultgroup size date time authorized_keys
回答: 解決策は、selinuxを無効にすることではなく、ユーザーディレクトリのselinux権限を修正することです。ユーザーディレクトリコンテキストはuser_home_tに設定する必要があります。チェックする、$ sudo ls -z /home/ ユーザーディレクトリのコンテキストがuser_home_t以外の場合、selinuxは、そのユーザーのそのユーザーディレクトリへの公開鍵を介したsshを許可しません。修正するには$ sudo semanage fcontext -a -t user_home_t /home/azureuser $ sudo restorecon -vvrf /home/azureuser これで、鍵ベースのログインが機能するはずです。