Centos

CentOS 忽略了我的公鑰

  • June 22, 2012

我正在嘗試使用 SSH 連接到我自己的 CentOS 伺服器;我可以用密碼很好地連接;我正在嘗試使用我的公鑰連接,但伺服器不嘗試公鑰身份驗證。我已按照 CentOS wiki 中此頁面上的所有說明進行操作,並驗證了以下事項:

  • 我正在執行 CentOS 6.0 或更高版本
  • 我的 sshd_config 有以下內容:
PermitRootLogin no
PubkeyAuthentication Yes
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
  • 我在客戶端主目錄的 .ssh/ 文件夾中創建了一個私鑰
  • 公鑰的全文(由 生成ssh-keygen)在伺服器上我的主目錄中的 .ssh/authorized_keys 文件中佔一行。
  • 我在客戶端和伺服器上都設置了以下權限模式:
chmod 700 .ssh
chmod 600 .ssh/*

根據CentOS 網站上的這個問題報告,這是由 SELinux 中的上游“特性”引起的;如果 SELinux 正在執行,它將阻止伺服器使用 pubkey 身份驗證。沒有跡象表明這種行為會在不久的將來發生變化。要查看此問題是否適用於您,請鍵入sestatus並查看它是否將“目前模式”報告為enforcing.

我知道兩種解決方法。

  • 您可以將 SELinux 設置為許可模式。鍵入setenforce 0以立即更改策略,然後打開/etc/selinux/config並確保SELINUX=permissive.
  • 將文件恢復到正確的安全上下文:
restorecon -R -v ~$USER/.ssh

引用自:https://serverfault.com/questions/401501