远程SSH登录Ubuntu 20.04服务器异常问题求助
远程SSH登录Ubuntu 20.04服务器异常问题求助
看起来你已经跟着教程完成了SSH密钥对生成、上传到服务器等操作,但最后登录时还是被要求输入密码——这种情况大多是密钥登录的配置或者权限出了问题,我来帮你梳理几个常见的排查方向:
1. 检查服务器端SSH相关文件的权限
SSH对~/.ssh目录和authorized_keys文件的权限要求非常严格,权限不对的话会直接拒绝密钥登录:
- 先登录到服务器,执行以下命令修正权限:
这两个权限是硬性要求,chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys700表示只有所有者能读写执行该目录,600表示只有所有者能读写密钥文件。
2. 确认公钥内容是否正确上传
有时候复制粘贴公钥的时候,可能会不小心漏掉字符或者换行格式出错:
- 在本地终端执行
cat ~/.ssh/id_rsa.pub(如果你用的是默认密钥文件名),把输出内容和服务器上~/.ssh/authorized_keys里的对应条目对比,确保完全一致。
3. 检查SSH服务器的配置文件
打开服务器上的/etc/ssh/sshd_config文件,确认以下几个关键配置项是否正确设置:
PubkeyAuthentication yes # 开启公钥认证 AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 # 指定公钥存储文件 PermitRootLogin yes # 允许root用户登录(如果是用root登录的话)
修改完配置后,记得重启SSH服务让配置生效:
sudo systemctl restart sshd
4. 用 verbose 模式查看登录日志
如果上面的步骤都没问题,你可以在本地执行带-v参数的SSH命令,查看详细的登录过程日志:
ssh -v root@myIP
日志里会明确显示本地有没有尝试使用密钥,以及服务器端拒绝密钥的具体原因(比如权限不通过、密钥不匹配等),根据日志信息就能更精准地定位问题了。
按照上面的步骤排查一遍,应该就能解决密钥登录需要输密码的问题啦,如果还有疑问,可以把ssh -v的日志片段贴出来,我再帮你分析~
备注:内容来源于stack exchange,提问作者zoldos
相关产品推荐
相关产品推荐

