Centos
CentOS 忽略了我的公鑰
我正在嘗試使用 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