能否通过桌面端外部SSH经Session Manager连接实例?如何操作?
方案可行性结论
该访问方案完全可行。通过Session Manager配套的SSH插件,可实现无需登录AWS控制台、无需实例绑定公网IP、无需安全组开放22端口入站规则,直接用本地Putty等SSH客户端访问目标Linux实例,同时Session Manager原生支持全量操作日志留存,完全匹配你的安全提升、日志审计需求。
具体操作步骤
前置校验(你已满足可跳过)
- 目标实例已安装3.0.502及以上版本的SSM Agent(Amazon Linux 2/2023默认预装,其他发行版可手动安装)
- 实例已附加包含
AmazonSSMManagedInstanceCore权限的IAM角色 - 实例网络可访问SSM服务端点(有公网出口或配置VPC私有端点均可)
- 你已经通过控制台Session Manager成功连接实例,说明以上配置均生效,可直接进入客户端配置环节
本地客户端配置(外部访问人员仅需完成一次)
1. 安装依赖工具
- 本地桌面安装AWS CLI,为外部访问人员分配具备最小Session Manager访问权限的IAM用户,完成本地凭证配置
- 安装Session Manager插件,对应Windows/macOS/Linux均有官方安装包,安装完成后无需额外配置
- 权限配置建议:给外部营销人员的IAM权限仅开放指定实例的
ssm:StartSession操作,避免越权访问其他资源
2. 配置SSH访问规则
适用OpenSSH客户端(Windows Terminal、macOS/Linux原生终端)
编辑本地SSH配置文件:
- Windows路径:
C:\Users\<你的用户名>\.ssh\config - macOS/Linux路径:
~/.ssh/config
在文件末尾添加以下内容:
# SSH over Session Manager host i-* mi-* ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
适用Putty客户端
打开Putty配置界面按以下步骤设置:
- 进入
Connection > Proxy页,代理类型选择Local - 在
Telnet command, or local proxy command输入框中填写:aws ssm start-session --target %host --document-name AWS-StartSSHSession --parameters portNumber=%port - 保存配置模板即可
连接实例
OpenSSH客户端
直接执行以下命令连接,无需填写实例公网IP:ssh <实例内操作系统用户名>@<目标实例ID>
示例:ssh ec2-user@i-0abc123def456ghi7
Putty客户端
打开Putty,在Host Name (or IP address)输入框直接填写目标实例ID,端口保持默认22,点击Open即可正常连接。
日志审计配置
可直接在AWS Systems Manager控制台的Session Manager设置页,配置会话日志投递规则:
- 支持投递到CloudWatch Logs,可实时检索用户所有操作命令
- 支持投递到S3存储桶,可长期归档用于合规审计
日志默认包含访问用户身份、操作时间、会话全量输入输出内容,可直接对接后续审计流程。
内容的提问来源于stack exchange,提问作者Christopher Gibson
相关产品推荐
相关产品推荐

