在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技术支持。

相关推荐
三玖诶18 小时前
DeepSeek Launcher:内置 Node.js,为什么首次启动仍需要网络?
windows·开源·deepseek
陈天伟教授18 小时前
具身数据采集黑话(4)
人工智能·windows·具身智能
无巧不成书021819 小时前
Apache Tomcat 9 下载全指南(Windows,Linux,macOS):版本选型、国内镜像、SHA-512 与 PGP 完整性校验
windows·tomcat·apache
3Q工具箱 - BraggTroy19 小时前
Python + PyInstaller 实战:从零打造 10 个 Windows 桌面小工具(附全部踩坑记录与核心代码)
开发语言·windows·python
linnux领域19 小时前
eNSP 交换机与电脑不在一个网段?用一台 Windows 双网卡做路由,把实验环境彻底打通
windows·华为·电脑·ensp·静态路由·网络实验·ensp模拟器
挂科边缘20 小时前
Android Studio 保姆级安装教程,Windows 电脑上安装 Android Studio
android·windows·android studio
TechExplorer36521 小时前
Win11 必要禁用的服务以释放进程内存
windows
科技每日热闻21 小时前
AWS Activate云积分可以用于哪些云服务和AI开发场景?
人工智能·ai·云计算·aws
江湖人称菠萝包21 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter5-剪贴板
windows·笔记
小此方1 天前
告别云服务器连接困扰——Windows下利用VirtualBox安装配置Ubuntu虚拟机详细教程
服务器·windows·ubuntu