EC2实例运行正常SSH连接报错无法解析主机名、Putty可连接问题咨询
EC2 SSH连接报错解决方案
具体报错:
ssh: Could not resolve hostname -: No such host is known
问题原因
- 该报错的核心原因是执行SSH命令时,系统误将多余的
-字符识别为了目标主机地址,最终导致域名解析失败。常见诱因有三类:- 复制公开的SSH命令模板时,连带复制了模板中代表参数占位的
-符号 - 手动输入命令时误输入了多余的
-,或命令换行时将换行前的连接符-错误带入执行 - 本地SSH配置文件中对应EC2实例的HostName参数被错误设置为
-
- 复制公开的SSH命令模板时,连带复制了模板中代表参数占位的
- Putty可正常连接的原因是你在Putty内手动填写的EC2公网地址是准确的,没有带入多余符号,因此无解析错误。
解决步骤
1. 校验执行的SSH命令
标准EC2 SSH连接命令格式如下,对比你执行的命令排查多余符号:
ssh -i "<你的密钥文件名>.pem" <实例默认用户名>@<EC2公网IP/公网域名>
确认除了参数前缀-i的-外,命令中没有其他无意义的-,删除多余符号后重新执行即可。
2. 校验本地SSH配置文件
如果调整命令后仍报错,检查本地SSH配置:
- Windows系统路径:
C:\Users\<你的用户名>\.ssh\config - macOS/Linux系统路径:
~/.ssh/config
打开文件后找到对应EC2实例的配置块,确认HostName字段填写的是正确的EC2公网IP/域名,而非-。
3. 校验第三方调用逻辑
如果你是通过别名、自定义脚本调用SSH命令,检查对应别名规则、脚本内容,确认调用时没有被自动插入多余的-字符。
内容的提问来源于stack exchange,提问作者Austin Jake
相关产品推荐
相关产品推荐

