Linux免密登录依赖SSH密钥对认证,需本地生成ed25519密钥对、将公钥用ssh-copy-id部署至服务器~/.ssh/authorized_keys,并确保服务端启用PubkeyAuthentication及权限正确(私钥600、目录700)。

Linux免密登录靠的是SSH密钥对认证,核心是本地生成密钥对,再把公钥传到目标服务器的~/.ssh/authorized_keys里。只要私钥安全、权限设置正确,就能跳过密码直接登录。
在你自己的电脑(或跳板机)上执行:
ssh-keygen -t ed25519 -C "your_email@example.com"
回车接受默认路径(~/.ssh/id_ed25519),可选设个密钥口令(为空则完全免密,设了需输一次口令解锁私钥)。完成后会生成两个文件:
id_ed25519:私钥(绝不能泄露,权限应为600)id_ed25519.pub:公钥(可公开,要传到服务器)最简单安全的方式是用ssh-copy-id(无需手动处理权限):
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
它会自动创建~/.ssh目录、写入authorized_keys,并设好权限(~/.ssh为700,authorized_keys为600)。如果提示命令未找到,可手动复制公钥内容,粘贴进服务器的~/.ssh/authorized_keys末尾(确保换行结尾)。
登录服务器后,确认SSH服务允许公钥认证:
sudo grep -E "PubkeyAuthentication|AuthorizedKeysFile" /etc/ssh/sshd_config
正常应看到:
PubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys如有修改,运行sudo systemctl restart sshd重载配置。注意:别关掉密码登录,直到确认密钥能成功登录后再禁用(改PasswordAuthentication no)。
本地终端运行:ssh -i ~/.ssh/id_ed25519 user@server_ip(显式指定私钥)
~/.ssh/authorized_keys内容是否完整、有无多余空格;确认该文件属主是当前用户且权限为600sshd_config中StrictModes yes导致,检查~/.ssh和家目录权限(家目录不能是777或含组/其他写权限)-i参数:把私钥加到~/.ssh/config中,配IdentityFile字段基本上就这些。不复杂但容易忽略权限和路径细节。
以上就是Linux免密登录配置教学_Linux生成SSH密钥对方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号