web-dev-qa-db-ja.com

CentOSは私の公開鍵を無視しています

SSHを使用して自分のCentOSサーバーに接続しようとしています。パスワードで問題なく接続できます。公開鍵で接続しようとしていますが、サーバーが公開鍵認証を試みません。 CentOS wikiの このページ のすべての指示に従い、次のことを確認しました。

  • CentOS6.0以降を実行しています

  • 私のsshd_configには次のものがあります。

    PermitRootLogin no
    PubkeyAuthentication Yes
    RSAAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • クライアントのホームディレクトリの.ssh /フォルダに秘密鍵を作成しました

  • 公開鍵の全文(ssh-keygenによって生成される)は、サーバー上のホームディレクトリにある.ssh/authorized_keysファイルで1行を占めます。
  • クライアントとサーバーの両方に次のアクセス許可モードを設定しています。

    chmod 700 .ssh
    chmod 600 .ssh/*
    
8
ILikeFood

これによると 問題レポート CentOS Webサイトでは、これはSELinuxのアップストリーム「機能」が原因です。 SELinuxが強制している場合、サーバーがpubkey認証を使用できなくなります。この動作が近い将来変更されるという兆候はありません。この問題が当てはまるかどうかを確認するには、sestatusと入力し、「現在のモード」がenforcingとして報告されるかどうかを確認します。

私は2つの回避策を知っています。

  • SELinuxを許容モードに設定できます。 setenforce 0と入力してポリシーをすぐに変更し、/etc/selinux/configを開いて、SELINUX=permissiveを確認します。
  • ファイルを正しいセキュリティコンテキストに復元します。

    restorecon -R -v ~$USER/.ssh
    
13
ILikeFood