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

无法从另一台EC2实例登录,需配置SSH密码验证方式

解决EC2 Ubuntu实例间SSH密码登录问题

问题原因

Ubuntu EC2实例默认配置下:

  • SSH服务禁用了密码验证(PasswordAuthentication设为no)
  • 默认用户(如ubuntu)未设置密码
    所以跨实例SSH时,系统优先尝试公钥验证,失败后直接返回Permission denied (publickey),不会触发密码验证流程。

配置步骤

1. 为目标实例的登录用户设置密码

先通过本地SSH连接到目标EC2实例,执行以下命令设置ubuntu用户的密码:

sudo passwd ubuntu

按照提示输入并确认密码(输入时终端不会显示字符,正常输入即可)。

2. 修改SSH配置启用密码验证

编辑SSH服务配置文件:

sudo nano /etc/ssh/sshd_config

找到以下配置项,修改为对应值:

  • 将PasswordAuthentication no改为PasswordAuthentication yes
  • 若存在ChallengeResponseAuthentication,改为ChallengeResponseAuthentication yes

修改完成后,按Ctrl+O保存,回车确认文件名,再按Ctrl+X退出编辑器。

重启SSH服务使配置生效:

sudo systemctl restart sshd

3. 检查目标实例安全组配置

确保目标EC2实例的安全组允许源EC2实例的私IP/安全组访问22端口:

  • 进入AWS控制台的EC2安全组页面
  • 找到目标实例的安全组,添加入站规则:
    • 类型:SSH(22)
    • 源:选择源EC2实例的安全组ID,或直接填写源实例的私IP地址

4. 测试跨实例密码登录

在源EC2实例的终端执行:

ssh ubuntu@<目标实例私IP>

此时终端会提示输入密码,输入之前设置的ubuntu用户密码即可完成登录。

注意事项

  • 建议保留PubkeyAuthentication yes配置,同时支持公钥和密码两种登录方式,兼顾安全与便捷
  • 若使用自定义用户登录,需为该用户执行passwd <用户名>设置密码
  • 避免将SSH端口的源设置为0.0.0.0/0,防止未授权访问

内容的提问来源于stack exchange,提问作者Elvis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:47:38