启动会话 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

启动会话

您可以使用 Amazon Systems Manager 控制台、Amazon Elastic Compute Cloud (Amazon EC2) 控制台、Amazon Command Line Interface (Amazon CLI) 或 SSH 启动会话。

启动会话(Systems Manager 控制台)

您可以使用 Amazon Systems Manager 控制台启动与账户中的托管式节点进行的会话。

注意

在启动会话之前,确保您已经完成 Session Manager 的设置步骤。有关信息,请参阅 设置 Session Manager

启动会话(Systems Manager 控制台)

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Session Manager

    -或者-

    如果首先打开 Amazon Systems Manager 主页,选择菜单图标( )以打开导航窗格,然后在导航窗格中选择 Session Manager

  3. 选择 Start session (启动会话)

  4. (可选)在 Reason for session(会话原因)字段中输入会话原因。

  5. 对于 Target instances(目标实例),选择要连接的托管式节点左侧的选项按钮。

    如果要连接的托管式节点不在列表中,或已列出但报告错误消息“The instance you selected isn't configured to use Session Manager”(您选择的实例未配置为使用 ),请参阅 托管式节点不可用或未为 Session Manager 配置托管式节点 以获取故障排除步骤。

  6. 选择 Start session (启动会话)

建立连接后,您可以像运行任何其他连接类型一样运行 Bash 命令(Linux 和 macOS)或 PowerShell 命令 (Windows)。

开启会话(Amazon EC2 控制台)

您可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 控制台来启动与账户中的实例的会话。

注意

如果您收到一个错误,提示您无权执行一项或多项 Systems Manager 操作 (ssm:command-name),则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。让其帮助您更新您的策略,以允许您从 Amazon EC2 控制台启动会话。如果您是管理员,请参阅 Session Manager 的默认 IAM policy 快速入门 了解更多信息。

要启动会话(Amazon EC2 控制台),请执行以下步骤:

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择实例,然后选择连接

  4. 对于 Connection method (连接方法),选择 Session Manager

  5. 选择 Connect(连接)。

建立连接后,您可以像运行任何其他连接类型一样运行 Bash 命令(Linux 和 macOS)或 PowerShell 命令 (Windows)。

启动会话 (Amazon CLI)

安装并配置 Amazon Command Line Interface (Amazon CLI)(如果尚未执行该操作)。

有关信息,请参阅安装或升级 Amazon 命令行工具

在启动会话之前,确保您已经完成 Session Manager 的设置步骤。有关信息,请参阅 设置 Session Manager

要使用 Amazon CLI 运行会话命令,还必须在本地计算机上安装 Session Manager 插件。有关信息,请参阅 (可选)为 Amazon CLI 安装 Session Manager 插件

要使用 Amazon CLI 开启会话,请运行以下命令,将 instance-id 替换为您自己的信息。

aws ssm start-session \ --target instance-id

有关可以与 start-session 命令一起使用的其他选项的信息,请参阅 Amazon CLI 命令参考的 Amazon Systems Manager 部分中的 start-session

启动会话 (SSH)

要启动 Session Manager SSH 会话,托管式节点上必须安装 2.3.672.0 版本或更高版本的 SSM Agent。

SSH 连接要求

对于使用 SSH 的会话连接,请注意以下要求和限制:

  • 必须将目标托管式节点配置为支持 SSH 连接。有关更多信息,请参阅(可选)通过 Session Manager 启用和控制 SSH 连接的权限

  • 您必须使用与 Privacy Enhanced Mail (PEM) 证书关联的托管式节点账户进行连接,而不是用于其他类型的会话连接的 ssm-user 账户。例如,在适用于 Linux 和 macOS 的 EC2 实例上,默认用户为 ec2-user。有关确定每种实例类型的默认用户的信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的获取有关您的实例的信息

  • 日志记录不可用于通过端口转发或 SSH 连接的 Session Manager 会话。这是因为 SSH 会加密所有会话数据,而 Session Manager 仅充当 SSH 连接的隧道。

注意

在启动会话之前,确保您已经完成 Session Manager 的设置步骤。有关信息,请参阅 设置 Session Manager

要使用 SSH 启动会话,请运行以下命令。将每个示例资源占位符替换为您自己的信息。

ssh -i /path/my-key-pair.pem username@instance-id
提示

当您使用 SSH 启动会话时,您可以使用以下命令格式将本地文件复制到目标托管式节点。

scp -i /path/my-key-pair.pem /path/ExampleFile.txt username@instance-id:~

有关可以与 start-session 命令一起使用的其他选项的信息,请参阅 Amazon CLI 命令参考的 Amazon Systems Manager 部分中的 start-session

启动会话(端口转发)

要启动 Session Manager 端口转发会话,必须在托管式节点上安装 2.3.672.0 版本或更高版本的 SSM Agent。

注意

在启动会话之前,确保您已经完成 Session Manager 的设置步骤。有关信息,请参阅 设置 Session Manager

要使用 Amazon CLI 运行会话命令,必须在本地计算机上安装 Session Manager 插件。有关信息,请参阅 (可选)为 Amazon CLI 安装 Session Manager 插件

根据您的操作系统和命令行工具,放置引号的位置可能会有所不同,并可能需要转义字符。

要启动端口转发会话,请从 CLI 中运行以下命令。将每个示例资源占位符替换为您自己的信息。

Linux & macOS
aws ssm start-session \ --target instance-id \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["80"], "localPortNumber":["56789"]}'
Windows
aws ssm start-session ^ --target instance-id ^ --document-name AWS-StartPortForwardingSession ^ --parameters portNumber="3389",localPortNumber="56789"

portNumber 指定的值表示应将流量重新导向至的托管式节点上的远程端口,例如 3389 用于使用远程桌面协议 (RDP) 连接到 Windows 节点的端口 。如果未指定该参数,则 Session Manager 假定 80 为默认远程端口。

localPortNumber 指定的值表示应将流量重新导向到的客户端上的本地端口,例如 56789。此值是您在使用客户端连接到托管式节点时输入的值。例如:localhost:56789

有关可以与 start-session 命令一起使用的其他选项的信息,请参阅 Amazon CLI 命令参考的 Amazon Systems Manager 部分中的 start-session

有关端口转发会话的更多信息,请参阅 Amazon 新闻博客中的使用 Amazon Systems ManagerSession Manager 进行端口转发

启动会话(至远程主机的端口转发)

要启动至远程主机的 Session Manager 端口转发会话,必须在托管式节点上安装 3.1.1374.0 版本或更高版本的 SSM Agent。远程主机不需要由 Systems Manager 进行管理。

注意

在启动会话之前,确保您已经完成 Session Manager 的设置步骤。有关信息,请参阅 设置 Session Manager

要使用 Amazon CLI 运行会话命令,必须在本地计算机上安装 Session Manager 插件。有关信息,请参阅 (可选)为 Amazon CLI 安装 Session Manager 插件

根据您的操作系统和命令行工具,放置引号的位置可能会有所不同,并可能需要转义字符。

要启动端口转发会话,请从 CLI 中运行以下命令。将每个示例资源占位符替换为您自己的信息。

Linux & macOS
aws ssm start-session \ --target instance-id \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ --parameters '{"host":["mydb.example.us-east-2.rds.amazonaws.com"],"portNumber":["3306"], "localPortNumber":["3306"]}'
Windows
aws ssm start-session ^ --target instance-id ^ --document-name AWS-StartPortForwardingSessionToRemoteHost ^ --parameters host="mydb.example.us-east-2.rds.amazonaws.com",portNumber="3306",localPortNumber="3306"

您为 host 指定的值表示要连接到的远程主机的主机名或 IP 地址。托管式节点和远程主机之间的常规连接和名称解析要求仍然适用。

portNumber 指定的值表示应将流量重新导向至的托管式节点上的远程端口,例如 3306 用于连接到 MySQL 数据库。如果未指定该参数,则 Session Manager 假定 80 为默认远程端口。

localPortNumber 指定的值表示应将流量重新导向到的客户端上的本地端口,例如 56789。此值是您在使用客户端连接到托管式节点时输入的值。例如:localhost:56789

有关可以与 start-session 命令一起使用的其他选项的信息,请参阅 Amazon CLI 命令参考的 Amazon Systems Manager 部分中的 start-session

启动会话(交互式和非交互式命令)

在启动会话之前,确保您已经完成 Session Manager 的设置步骤。有关信息,请参阅 设置 Session Manager

要使用 Amazon CLI 运行会话命令,还必须在本地计算机上安装 Session Manager 插件。有关信息,请参阅 (可选)为 Amazon CLI 安装 Session Manager 插件

要启动交互式命令会话,请运行以下命令:将每个示例资源占位符替换为您自己的信息。

Linux & macOS
aws ssm start-session \ --target instance-id \ --document-name CustomCommandSessionDocument \ --parameters '{"logpath":["/var/log/amazon/ssm/amazon-ssm-agent.log"]}'
Windows
aws ssm start-session ^ --target instance-id ^ --document-name CustomCommandSessionDocument ^ --parameters logpath="/var/log/amazon/ssm/amazon-ssm-agent.log"

有关可以与 start-session 命令一起使用的其他选项的信息,请参阅 Amazon CLI 命令参考的 Amazon Systems Manager 部分中的 start-session

更多信息