SSH免密码登录方法
总结摘要
要让 SSH 免密码登录服务器,最常用的方法是设置 SSH 密钥对。这样不仅可以免去每次输入密码的麻烦,而且比传统的密码验证更安全。
要让 SSH 免密码登录服务器,最常用的方法是设置 SSH 密钥对。这样不仅可以免去每次输入密码的麻烦,而且比传统的密码验证更安全。
操作步骤如下:
第一步:在本地电脑生成密钥对
首先,在你自己的电脑(客户端)上打开终端(Linux/macOS)或 PowerShell(Windows)。
输入以下命令:
| |
- 系统会提示你输入文件保存位置,可以直接按回车键使用默认路径 (
~/.ssh/id_rsa)。 - 接着会提示你输入密码短语(passphrase)。如果这里设置了密码,每次使用密钥时仍需要输入该密码(但可以借助 SSH agent 避免每次都输)。如果希望完全免密,直接留空并按回车即可。
第二步:将公钥复制到服务器
你需要把刚才生成的公钥内容,添加到服务器的 ~/.ssh/authorized_keys 文件中。主要有两种方法:
方法 A:使用 ssh-copy-id(推荐)
这是最简单的方法,在终端中运行:
| |
user:替换成你的服务器用户名your_server_ip:替换成你的服务器 IP 地址或域名
之后输入一次密码,公钥就会自动上传并配置好。
方法 B:手动复制
如果本地没有 ssh-copy-id 命令,可以手动操作:
查看公钥内容(在本地电脑上):
1cat ~/.ssh/id_rsa.pub选中并复制显示的全部内容(以
ssh-rsa开头)。登录服务器(这一步还需要输入密码):
1ssh user@your_server_ip在服务器上配置公钥:
最后两行的
chmod命令用于设置正确的权限,这是 SSH 安全要求所必需的。
第三步:测试登录
配置完成后,在本地电脑退出当前 SSH 连接,然后重新尝试登录:
| |
如果一切顺利,你应该可以直接登录,系统不会再提示输入密码。
如果仍然提示输入密码,可以检查以下几点:
- 权限设置:确保服务器上的
~/.ssh目录权限是700,~/.ssh/authorized_keys文件权限是600。 - SSH 配置:检查服务器上的
/etc/ssh/sshd_config文件,确保以下设置是yes且未被注释掉:如果修改了这个文件,需要重启 SSH 服务才能生效:1PubkeyAuthentication yessudo systemctl restart sshd或sudo service ssh restart。 - 客户端调试:如果还是不行,可以在连接时加上
-v参数(如ssh -v user@ip),查看详细的连接日志,这通常会给出具体的失败原因。