配置SSH免密码登录需先生成密钥对,将公钥复制到远程服务器的~/.ssh/authorized_keys文件中,并设置正确权限:~/.ssh目录为700,authorized_keys文件为600,确保远程服务器SSH配置启用PubkeyAuthentication,最后通过ssh命令测试登录。

配置SSH免密码登录可以让你在Linux系统之间安全地进行远程登录和文件传输,而无需每次输入密码。实现这个功能主要依赖SSH密钥对认证机制。下面是具体操作步骤。
生成SSH密钥对
在本地机器(即你要从中登录的电脑)上生成公钥和私钥:
ssh-keygen -t rsa -b 2048
执行后会提示你选择密钥保存路径(默认是~/.ssh/id_rsa),可以直接回车使用默认路径。接着会询问是否设置密钥密码(passphrase),如果希望完全免密码,直接回车跳过即可。
完成后会在~/.ssh/目录下生成两个文件:
id_rsa:私钥,保存在本地,不能泄露 id_rsa.pub:公钥,需要复制到目标服务器
将公钥复制到远程服务器
把本地生成的公钥内容添加到远程服务器的~/.ssh/authorized_keys文件中。最简单的方法是使用SSH自带的复制工具:
ssh-copy-id username@server_ip
例如:
ssh-copy-id user@192.168.1.100
系统会提示你输入一次远程用户的密码,验证通过后公钥就会自动添加。
如果没有ssh-copy-id命令,可以手动复制:
琅琅配音
全能AI配音神器
208 查看详情
cat ~/.ssh/id_rsa.pub | ssh username@server_ip “mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys”
设置正确的文件权限
SSH对文件权限要求严格,错误的权限会导致认证失败。在远程服务器上确保以下权限设置:
~/.ssh目录权限应为700:chmod 700 ~/.ssh ~/.ssh/authorized_keys文件权限应为600:chmod 600 ~/.ssh/authorized_keys
同时确保远程用户的主目录没有过于宽松的写权限,例如不要设置为777。
测试免密登录
完成上述步骤后,尝试通过SSH登录远程服务器:
ssh username@server_ip
如果一切正常,你应该能直接登录,无需输入密码。
如果仍然提示输入密码,可以检查远程服务器的SSH配置文件/etc/ssh/sshd_config,确认以下几项设置正确:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes(可选,调试时保留)
修改后重启SSH服务:
sudo systemctl restart sshd
基本上就这些。只要密钥正确部署、权限设置得当,SSH免密码登录就能稳定工作。适用于自动化脚本、定时任务和频繁远程操作的场景。
以上就是Linux如何配置ssh免密码登录的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/432813.html
微信扫一扫
支付宝扫一扫