amazon-web-services - 无法通过 AWS Session Manager 工作获得 SSH 连接
问题描述
我在私有子网中有一个 EC2 实例,我想在其中复制文件。
我想通过会话管理器使用安全文件复制而不是 S3 存储桶,如此处记录并在此处宣布。
一个正在运行的 EC2 实例附加了一个包含该策略的实例配置文件AmazonEC2RoleforSSM
。在我的本地计算机 (macOS 10.14.5) 上,AWS CLI (aws-cli/1.16.195) 和会话管理器插件 (1.1.26.0) 已安装并.ssh/config
进行了相应配置。
我可以使用 Web AWS 控制台上的会话管理器登录到实例。
我可以使用带有
aws ssm start-session --target i-XXX
.我无法使用 SSH 登录实例。我尝试了 2 个不同的 OpenSSH 客户端版本:
OpenSSH_7.9p1:
当我运行ssh ec2-user@i-XXX
它无限挂起。但是我可以connected
在会话管理器中看到一个会话。当我 SIGTERM 进程时,我得到以下输出并且会话终止:
Command '['session-manager-plugin', '{"SessionId": "XXX", "TokenValue": "XXX", "StreamUrl": "wss://ssmmessages.eu-central-1.amazonaws.com/v1/data-channel/XXX?role=publish_subscribe", "ResponseMetadata": {"RetryAttempts": 0, "HTTPStatusCode": 200, "RequestId": "XXX", "HTTPHeaders": {"x-amzn-requestid": "XXX", "date": "Wed, 07 Aug 2019 08:47:23 GMT", "content-length": "579", "content-type": "application/x-amz-json-1.1"}}}', 'eu-central-1', 'StartSession', u'cc', '{"DocumentName": "AWS-StartSSHSession", "Target": "i-XXX", "Parameters": {"portNumber": ["22"]}}', u'https://ssm.eu-central-1.amazonaws.com']' returned non-zero exit status -13
OpenSSH_8.0p1:
运行时ssh ec2-user@i-XXX
出现以下错误,需要在会话管理器中手动终止会话:
kex_exchange_identification: banner line contains invalid characters
解决方案
我刚刚从 AWS Support 获得了答复,它现在对我有用。以下组件之一存在错误。
确保至少遵循以下版本,然后它应该可以工作。
当地的
- aws cli:aws-cli/1.16.213 Python/3.7.2 Darwin/18.7.0 botocore/1.12.203
aws --version
- 会话管理器插件:1.1.26.0
session-manager-plugin --version
目标 ec2 实例
- 亚马逊-ssm-代理:2.3.687.0
- 适用于 AmazonLinux
yum info amazon-ssm-agent | grep "^Version"
- 适用于 AmazonLinux
我还创建了一个简洁的 SSH ProxyCommand 脚本,在连接到目标实例期间临时将您的公共 ssh 密钥添加到目标实例。
- AWS SSM SSH ProxyComand -> https://gist.github.com/qoomon/fcf2c85194c55aee34b78ddcaa9e83a1
推荐阅读
- nginx - Nginx 从子文件夹重定向到该子文件夹的文件夹
- php - 如何使用ajax在jQuery post中获取隐藏的关联数组字段值
- java - 找不到匹配的 bean - `dispatcher-servlet.xml` 文件中的 Spring 错误
- svelte - 嵌套布局上的 Svelte Routing 404
- python - 如何根据条件加入数组元素?
- laravel - Laravel foreach 没有关闭
- scala - 未设置线性回归特征
- sql - PostgreSQL SQL 的触发器和重复问题
- security - ArcGIS JavaScript API 中的参数化查询
- vb.net - 画布内文本中的 iText 垂直对齐不起作用