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

相关推荐
Hx_Ma162 小时前
List 转二维 List
数据结构·windows·list
软件资深者2 小时前
植物大战僵尸1经典版(小游戏)+超强辅助工具 自动收取阳光
windows·游戏程序·windows11
雄狮少年2 小时前
AI Agent Workflow基类及实现类,快速实现一个react agent,可直接运行
人工智能·windows·react.js
Kazefuku2 小时前
VS Code 和Visual Studio:简单易懂的区别
ide·windows·visual studio
wypywyp2 小时前
6.linux环境优化——vscdoe ssh mobaxterm
linux·运维·ssh
gsgbgxp2 小时前
通过tailscale配置ssh远程实现wsl系统VSCode编程
vscode·深度学习·ubuntu·ssh
Asssshzy3 小时前
校园网断网无法远程电脑的解决方案
windows·计算机网络·电脑
等风来不如迎风去3 小时前
【android】oppo手机拷贝视频文件
android·windows·智能手机
LeenixP3 小时前
OpenHarmony调试工具安装与使用-HDC
windows·测试工具·华为·鸿蒙系统·hdc