You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

远程SSH登录Ubuntu 20.04服务器异常问题求助

远程SSH登录Ubuntu 20.04服务器异常问题求助

看起来你已经跟着教程完成了SSH密钥对生成、上传到服务器等操作,但最后登录时还是被要求输入密码——这种情况大多是密钥登录的配置或者权限出了问题,我来帮你梳理几个常见的排查方向:

1. 检查服务器端SSH相关文件的权限

SSH对~/.ssh目录和authorized_keys文件的权限要求非常严格,权限不对的话会直接拒绝密钥登录:

  • 先登录到服务器,执行以下命令修正权限:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
    这两个权限是硬性要求,700表示只有所有者能读写执行该目录,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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:44:51