在Windows系统上通过SSH访问远程AWS主机

要在Windows系统上通过SSH访问远程AWS主机(EC2实例),需遵循安全组配置客户端选择连接操作三个核心步骤,并注意常见问题的排查。以下是详细指南:

一、前提条件

在开始前,请确保已完成以下准备:

  1. AWS EC2实例已启动:实例状态需为"运行中"(可通过AWS管理控制台查看)。
  2. 获取实例信息
    • 实例的公有DNS名称IPv4地址(在EC2控制台的"实例"页面获取);
    • 实例的默认用户名 (取决于AMI类型,如Amazon Linux为ec2-user,Ubuntu为ubuntu,RHEL为ec2-userroot);
    • 启动实例时创建的私钥文件(.pem)(需妥善保存,丢失无法找回)。
  3. 安全组配置 :确保实例关联的安全组允许**SSH(端口22)**入站流量(详见下文"步骤1")。

二、步骤1:配置AWS安全组(关键!避免"Connection refused")

安全组是AWS的虚拟防火墙,**必须开放SSH端口(22)**才能允许外部连接。配置步骤如下:

  1. 登录AWS管理控制台,进入"EC2服务"→"实例",选择目标实例。
  2. 在"描述"选项卡中,找到"安全组" section,点击安全组ID(如sg-0123456789abcdef0)。
  3. 在"入站规则"选项卡中,点击"编辑入站规则",添加以下规则:
    • 类型:选择"SSH";
    • 协议:TCP;
    • 端口范围:22;
    • 来源 :建议选择"我的IP"(自动获取当前公网IP),或输入特定IP段(如192.168.1.0/24);
    • 点击"保存规则"。

注意 :若来源设置为0.0.0.0/0,则允许所有IP访问SSH端口(不安全,仅测试用)。

三、步骤2:选择Windows SSH客户端

Windows系统有两种主流SSH客户端可选,根据习惯选择其一即可:

选项A:使用Windows自带OpenSSH客户端(推荐,无需额外安装)

Windows 10及以上系统默认预装OpenSSH客户端 (若未安装,可通过"设置→应用→可选功能→添加功能"安装)。
连接步骤

  1. 打开命令提示符(管理员权限) :按Win+R输入cmd,按Ctrl+Shift+Enter(避免权限不足)。

  2. 导航至私钥文件目录 :使用cd命令进入.pem文件所在的文件夹(如cd D:\Software)。

  3. 设置私钥文件权限 :SSH要求私钥文件仅所有者可读 ,执行以下命令:

    bash 复制代码
    icacls "youarethebest.pem" /grant:r "$($env:USERNAME):(R)" /inheritance:r

    (注:若使用PowerShell,可直接输入上述命令;若使用命令提示符,需用chmod 400 youarethebest.pem,但Windows对.pem权限的支持不如Linux完善,建议用PowerShell)。

  4. 执行SSH连接命令

    bash 复制代码
    ssh -i "D:\Software\youarethebest.pem" ubuntu@34.203.241.96
    • 替换D:\Software\youarethebest.pem为你的私钥文件路径;
    • 替换ubuntu为实例的默认用户名(如ec2-user);
    • 替换34.203.241.96为实例的公有IP或DNS名称。
  5. 验证指纹(首次连接) :首次连接时,会提示"无法验证主机真实性",输入yes并回车(需确保指纹与AWS控制台"实例→描述→SSH主机密钥指纹"一致)。

选项B:使用PuTTY(第三方工具,适合习惯图形界面的用户)

PuTTY是Windows下经典的SSH客户端,需配合PuTTYgen (密钥转换工具)使用。
准备工作

  1. 下载并安装PuTTY:https://www.putty.org/(选择"64-bit x86 MSI installer")。
  2. 使用PuTTYgen 转换私钥格式:
    • 启动PuTTYgen,点击"Load",选择你的.pem文件(需选择"所有文件"才能看到.pem);
    • 点击"Save private key",保存为.ppk格式(如youarethebest.ppk,无需设置密码)。

连接步骤

  1. 启动PuTTY,在"Session"选项卡中输入:
    • Host Nameubuntu@34.203.241.96(替换为实例用户名和IP/DNS);
    • Port:22;
    • Connection type:SSH。
  2. 在左侧"Category"中选择"Connection→SSH→Auth",点击"Browse",选择转换后的.ppk文件。
  3. (可选)在"Session"选项卡中,输入"Saved Sessions"名称(如"AWS-EC2"),点击"Save"(下次可直接加载)。
  4. 点击"Open",首次连接会提示"安全警告",点击"是"(需验证指纹)。

四、步骤3:验证连接

若连接成功,会看到实例的命令行提示符(如ubuntu@ip-172-31-xx-xx:~$),此时可执行命令(如lspwd)验证。

五、常见问题排查(针对"Connection refused")

若遇到"ssh: connect to host xxx port 22: Connection refused",请按以下顺序排查:

  1. 安全组是否开放SSH端口:回到步骤1,确认安全组的入站规则是否允许SSH(端口22)来自你的IP。
  2. 实例是否运行:在AWS控制台检查实例状态是否为"运行中"(若状态为"停止",需启动实例)。
  3. 私钥是否正确 :确认.pem文件是否为启动实例时的密钥对(若更换过密钥,需重新关联)。
  4. 网络是否可达 :尝试ping 34.203.241.96(注:AWS实例默认禁用ICMP,可能无法ping通,但SSH连接不受影响);或用tracert 34.203.241.96查看路由是否有阻塞。
  5. 客户端权限是否正确 :确保.pem文件权限为"仅所有者可读"(Windows下用PowerShell执行icacls命令,Linux下用chmod 400)。

六、注意事项

  1. 合规性:在中国大陆,访问境外AWS实例需遵守当地法律法规,确保用途合法。
  2. 安全最佳实践
    • 避免使用0.0.0.0/0作为SSH来源(易被暴力破解);
    • 定期更换密钥对(通过AWS控制台的"密钥对"页面创建新密钥,替换实例中的公钥);
    • 禁用密码登录(仅使用密钥认证,修改/etc/ssh/sshd_config中的PasswordAuthentication no,重启sshd服务)。

通过以上步骤,即可在Windows系统上通过SSH成功访问远程AWS主机。若仍有问题,建议参考AWS官方文档《连接到Linux实例》或联系AWS技术支持。

相关推荐
love530love4 小时前
Windows 下 GCC 编译器安装与排错实录
人工智能·windows·python·gcc·msys2·gtk·msys2 mingw 64
猫头虎5 小时前
OpenClaw开源汉化发行版:介绍、下载、安装、配置教程
运维·windows·开源·aigc·ai编程·agi·csdn
luffy54595 小时前
windows下通过docker-desktop创建redis实例
windows·redis·docker·容器
程序员敲代码吗5 小时前
Windows组策略限制规避指南:深入解析与实际操作
windows
黄大帅@lz6 小时前
openai提示词学习
windows·学习
MyY_DO6 小时前
十四课 易语言核心逆向
windows·od
AI_567814 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
AI袋鼠帝17 小时前
Claude4.5+Gemini3 接管电脑桌面,这回是真无敌了..
人工智能·windows·aigc
獨枭18 小时前
Windows 下安装与使用 Miniconda 完整指南
windows
命里有定数19 小时前
保姆级教程:在 Windows (WSL2) 下本地部署 Qwen3-ASR
windows