2026-05-19 15:08:41
在Linux中配置SSH免密登录的核心步骤包括生成密钥对、将公钥添加到远程服务器的authorized_keys文件,并验证登录。以下是详细操作指南:

使用ssh-keygen命令生成RSA类型密钥对(4096位增强安全性):
ssh-keygen -t rsa -b 4096保存路径:默认~/.ssh/id_rsa,直接回车确认。
密码(Passphrase):若需完全免密登录,直接回车跳过;否则设置密码(需在每次使用时输入)。
私钥:~/.ssh/id_rsa(严格保密,禁止泄露)。
公钥:~/.ssh/id_rsa.pub(需上传至远程服务器)。

自动将公钥追加到远程服务器的~/.ssh/authorized_keys文件:
ssh-copy-id user@remote_host若文件不存在,先创建.ssh目录并设置权限:mkdir -p ~/.sshchmod 700 ~/.ssh
将公钥内容追加到文件:echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys
设置文件权限:chmod 600 ~/.ssh/authorized_keys

退出当前远程连接后,重新尝试登录:
ssh user@remote_host公钥未正确写入:检查~/.ssh/authorized_keys内容是否与本地公钥一致。
权限问题:
.ssh目录权限必须为700:chmod 700 ~/.ssh
authorized_keys文件权限必须为600:chmod 600 ~/.ssh/authorized_keys
SSH服务配置:确保远程服务器的/etc/ssh/sshd_config包含以下配置:PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys修改后重启SSH服务:sudo systemctl restart sshd # 或 service ssh restart
私钥使用错误:若存在多个密钥,需通过-i指定私钥路径:ssh -i ~/.ssh/id_rsa user@remote_host
通过以上步骤,可高效完成SSH免密登录配置,显著提升服务器管理效率。