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

AWS Ubuntu实例创建deploy用户,密码SSH登录遇权限拒绝如何解决?

需求完全可行!以下是分步解决方法

首先明确:通过密码SSH登录Ubuntu实例是完全可行的,你遇到的"Permission denied (public key)"提示,本质是Ubuntu默认禁用了密码登录认证,再加上SSH会优先尝试公钥认证导致的。按下面的步骤操作就能解决问题:

1. 修改SSH服务配置文件

先用ubuntu用户登录实例,编辑SSH的核心配置文件:

sudo nano /etc/ssh/sshd_config

在文件中找到以下关键配置项,做对应修改(如果配置项不存在就直接添加):

  • 将 PasswordAuthentication no 改为 PasswordAuthentication yes
  • 确保 ChallengeResponseAuthentication yes(新版Ubuntu通常默认已开启,若设为no则改成yes)
  • 保留 PubkeyAuthentication yes(这不会影响原ubuntu用户用pem密钥登录)

额外注意:如果配置文件里有AllowUsers项,一定要把deploy添加进去,比如改成 AllowUsers ubuntu deploy,否则该用户会被直接拒绝登录;如果有DenyUsers项,要确保deploy不在列表中。

修改完成后,按Ctrl+O保存内容,再按Ctrl+X退出编辑器。

2. 重启SSH服务让配置生效

执行以下命令重启SSH服务(根据你的Ubuntu版本选一个即可):

# 适用于Ubuntu 16.04及以上的新版本
sudo systemctl restart sshd

# 旧版本Ubuntu可以用这个命令
sudo service ssh restart

3. 修复deploy用户家目录的权限

SSH对用户家目录的权限有严格要求,不能给其他用户开放写权限,否则会直接拒绝密码登录请求。执行下面的命令修正权限:

sudo chmod 755 /home/deploy

4. 测试密码登录

回到Mac终端,尝试用密码登录实例:

ssh deploy@<你的AWS实例IP地址>

如果终端还是自动尝试用公钥认证,可以强制指定用密码方式登录:

ssh -o PreferredAuthentications=password deploy@<你的AWS实例IP地址>

这时应该会弹出密码输入提示,输入你之前给deploy设置的密码,就能成功登录了。

重要提醒:修改SSH配置前,一定要保持当前ubuntu用户的登录会话处于打开状态,如果配置出错导致无法连接,你还能通过这个会话修正问题,避免实例失联。

内容的提问来源于stack exchange,提问作者Nikhil Das Nomula

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:37:39