aws ssm start-session ..AWS-StartPortForwardingSession .. 挂起

aws ssm start-session ..AWS-StartPortForwardingSession .. 挂起

我正在尝试根据以下条件在本地 PC 和 AWS EC2 之间设置端口转发AWS SSM 端口转发文章 例如:

aws ssm start-session --target  i-0822c9a6c52ca7394 \
  --document-name AWS-StartPortForwardingSession --parameters \
 '{"portNumber":["55555"],"localPortNumber":["6666"]}'

我已经使用 SSM 来访问实例(使用ssm 会话),并使用它开始python -m SimpleHTTPServer 55555监听端口。

我从 SSM 获得的输出如下:

开始会话,会话 ID 为:jakub.holy@481473109573-0dd8f51cc06ef4469

(并且,经过很长一段时间后: SessionId:jakub.holy@481473109573-0dd8f51cc06ef4469:由于不活动,您的会话超时并已终止。 - 我仍然需要kill它。)

此时程序挂起了。我本以为会在“Startin session...”之后出现以下内容,但是我没有看到:

端口 6666 已为 sessionId 开放....

会话已接受连接.....

知道为什么它挂起并且没有建立端口转发吗?

答案1

我从一位同事那里得到了这个建议:

您可能需要在 EC2 实例上更新 ssm-agent,然后才能使用端口转发功能。当代理不支持端口转发时,会话将挂起且没有错误消息,或者以消息“会话超时”结束。

(我正在使用内置于 Amazon Linux 2 实例中的代理,其版本号为 v. 2.3.662,而最新版本是 2.3.760。)

答案2

确保您可以写入用于会话管理器日志记录的存储桶(如果有),并确保您还授予 EC2 该操作s3:GetBucketEncryption。请参阅这里了解更多信息

答案3

如果本地端口已在使用中,则会出现此行为。您可以通过启动两个具有相同配置的隧道来复制此行为,第二个隧道将停留在那里,因为端口已在使用中。

相关内容