ssh-keygen -t rsa -b 4096ssh-copy-id user@host 或手動追加至 ~/.ssh/authorized_keyschmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys~/.ssh 目錄擁有者為當前用戶/etc/ssh/sshd_config 確認項:
PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysPasswordAuthentication no(可選,禁用密碼登錄)systemctl restart sshd| 現象 | 可能原因 | 解決方法 |
|---|---|---|
| 仍提示輸入密碼 | authorized_keys 權限過寬(如 644) | chmod 600 ~/.ssh/authorized_keys |
| 提示 "Permission denied (publickey)" | 公鑰內容錯誤/換行符問題 | 用 cat 查看公鑰應為單行,以 ssh-rsa 開頭 |
| 客戶端報 "Agent admitted failure to sign" | ssh-agent 未運行或未添加私鑰 | eval $(ssh-agent -s); ssh-add ~/.ssh/id_rsa |
| SELinux 環境下失敗 | 安全上下文錯誤 | restorecon -Rv ~/.ssh |
| 家目錄加密導致無法讀取 | 首次登錄需輸入密碼解密家目錄 | 將 authorized_keys 移至 /etc/ssh/authorized_keys/用戶名 並修改 sshd_config |
客戶端執行:
ssh -vvv user@host
關注輸出中的 debug1: Offering public key、debug1: Server accepts key、debug1: Authentication succeeded 等關鍵字。
若為 Hadoop 集群配置,需確保:
~/.ssh/config 設置 StrictHostKeyChecking no 避免首次確認提示ssh-keygen -f ~/.ssh/hadoop_rsa),並在 config 指定 IdentityFile