如何使用 aws cli 恢复会话?

问题描述

我已经用命令开始了一个会话 aws ssm start-session --target <instance id> --region <my region>,当我这样做时,我得到 Starting session with SessionId <sessionid>登录到 ec2 实例。然后我离开了我的电脑,连接超时。现在我想回到那个会议。

我尝试了命令 aws ssm resume-session --session-id <sessionid from above> --region <my region> 返回类似 { "SessionId": "<sessionid from above>","TokenValue": "","StreamUrl": "<url here>" } 。但是我如何真正再次连接?这让我留在我的本地计算机上,而 start session 命令让我进入 aws 实例。如果我再次尝试 start-session 命令,我会得到一个全新的会话。我觉得我错过了一些明显的东西!

解决方法

正如 aws cli 文档所述,您需要确保已配置以下内容:

请注意,此交互式命令需要会话管理器插件 安装在发出呼叫的客户端计算机上。

有关更多信息,请参阅 AWS Systems Manager 用户指南中的为 AWS CLI 安装会话管理器插件:https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html

另外请注意以下事项:

ResumeSession,在会话断开后将会话重新连接到实例。 可以为断开的会话恢复连接,但不能 终止的会话。此命令主要供客户端计算机使用,以在间歇性网络问题期间自动重新连接。不用于任何其他用途

您可以使用 AWS Systems Manager 控制台或 AWS 命令​​行 用于结束您开始连接到的会话的界面 (AWS CLI) 实例在您的帐户中。如果 20 小时后没有用户活动 分钟,一个会话结束。会话结束后,不能 恢复了。

anyhoo,我已经启动了一个会话并且超时/断开恢复会话命令将为您提供一个新实例,您可以根据文档立即使用该实例:

这个恢复会话示例使用一个恢复会话管理器会话 断开连接后的实例。