(可选)为 AWS CLI 安装 Session Manager 插件 - AWS Systems Manager

(可选)为 AWS CLI 安装 Session Manager 插件

如果需要使用 AWS Command Line Interface (AWS CLI) 启动和结束连接到托管式节点的会话,必须先在本地计算机上安装 Session Manager 插件。可以在支持的 Microsoft Windows、macOS、Linux 和 Ubuntu 版本上安装此插件。

使用最新版本的 Session Manager 插件

Session Manager 插件的更新偶尔会包含增强功能。我们建议您定期确保使用的是最新版本的插件。有关更多信息,请参阅Session Manager 插件最新版本和发布历史记录

安装先决条件

必须在本地计算机上安装 AWS CLI 版本 1.16.12 或更高版本才能使用 Session Manager 插件。

在 Windows 上安装 Session Manager 插件

您可以使用独立安装程序在 Microsoft Windows Vista 或更高版本上安装 Session Manager 插件。

更新发布后,您必须重复安装过程以获取最新版本的 Session Manager 插件。

注意

为获得最佳效果,建议使用 Windows PowerShell 版本 5 或更高版本在 Windows 客户端上启动会话。或者,您可以在 Microsoft Windows 10 中使用 Command shell。Session Manager 插件只支持 PowerShell 和 Command shell。第三方命令行工具可能与此插件不兼容。

要使用 EXE 安装程序安装 Session Manager 插件,请执行以下步骤:
  1. 使用以下 URL 下载安装程序。

    https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionManagerPluginSetup.exe

    或者,您可以访问以下 URL 以下载安装程序的 zip 格式版本。

    https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows/SessionManagerPlugin.zip
  2. 运行下载的安装程序并按照屏幕上的说明操作。如果您下载了安装程序的 zip 格式版本,则必须先解压缩安装程序。

    将安装位置框留空以将插件安装到默认目录。

    • %PROGRAMFILES%\Amazon\SessionManagerPlugin\bin\

  3. 验证安装是否成功。有关信息,请参阅 验证 Session Manager 插件安装

    注意

    如果 Windows 无法找到可执行文件,您需要重新打开命令提示符或手动将安装目录添加到 PATH 环境变量。有关信息,请参阅故障排除主题 Session Manager 插件未自动添加到命令行路径 (Windows)

在 macOS 上安装和卸载 Session Manager 插件

您可以使用捆绑安装程序在 macOS 上安装 Session Manager 插件。

重要

捆绑安装程序不支持安装到包含空格的路径。

要使用捆绑安装程序安装 Session Manager 插件 (macOS),请执行以下步骤:
  1. 下载捆绑安装程序。

    curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/sessionmanager-bundle.zip" -o "sessionmanager-bundle.zip"
  2. 解压缩程序包。

    unzip sessionmanager-bundle.zip
  3. 运行安装命令。

    sudo ./sessionmanager-bundle/install -i /usr/local/sessionmanagerplugin -b /usr/local/bin/session-manager-plugin
    注意

    此插件需要 Python 2.6.5 或更高版本或者 Python 3.3 或更高版本。默认情况下,安装脚本在系统默认版本的 Python 下运行。如果已安装 Python 的可选版本并希望使用该版本安装 Session Manager 插件,请使用该版本按 Python 可执行文件的绝对路径运行安装脚本。以下是示例。

    sudo /usr/local/bin/python3.6 sessionmanager-bundle/install -i /usr/local/sessionmanagerplugin -b /usr/local/bin/session-manager-plugin

    安装程序在 /usr/local/sessionmanagerplugin 中安装 Session Manager 插件,并在 /usr/local/bin 目录中创建符号链接 session-manager-plugin。这样,不必在用户的 $PATH 变量中指定安装目录。

    要查看 -i-b 选项的说明,请使用 -h 选项。

    ./sessionmanager-bundle/install -h
  4. 验证安装是否成功。有关信息,请参阅 验证 Session Manager 插件安装

注意

如果需要卸载此插件,请按照所示顺序运行以下两个命令。

sudo rm -rf /usr/local/sessionmanagerplugin
sudo rm /usr/local/bin/session-manager-plugin

使用已签名的安装程序在 macOS 上安装 Session Manager 插件

您可以使用已签名的安装程序在 macOS 上安装 Session Manager 插件。

要使用已签名的安装程序安装 Session Manager 插件 (macOS),请执行以下步骤:
  1. 下载已签名的安装程序。

    curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac/session-manager-plugin.pkg" -o "session-manager-plugin.pkg"
  2. 运行安装命令。

    sudo installer -pkg session-manager-plugin.pkg -target / sudo ln -s /usr/local/sessionmanagerplugin/bin/session-manager-plugin /usr/local/bin/session-manager-plugin
  3. 验证安装是否成功。有关信息,请参阅 验证 Session Manager 插件安装

在 Linux 上安装 Session Manager 插件

  1. 下载 Session Manager 插件 RPM 软件包。

    • x86_64

      curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_64bit/session-manager-plugin.rpm" -o "session-manager-plugin.rpm"
    • x86

      curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_32bit/session-manager-plugin.rpm" -o "session-manager-plugin.rpm"
    • ARM64

      curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_arm64/session-manager-plugin.rpm" -o "session-manager-plugin.rpm"
  2. 运行安装命令。

    sudo yum install -y session-manager-plugin.rpm
  3. 验证安装是否成功。有关信息,请参阅 验证 Session Manager 插件安装

注意

如果需要卸载此插件,请运行 sudo yum erase session-manager-plugin -y

在 Ubuntu 上安装 Session Manager 插件

  1. 下载 Session Manager 插件 deb 软件包。

    • x86_64

      curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
    • x86

      curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_32bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
    • ARM64

      curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_arm64/session-manager-plugin.deb" -o "session-manager-plugin.deb"
  2. 运行安装命令。

    sudo dpkg -i session-manager-plugin.deb
  3. 验证安装是否成功。有关信息,请参阅 验证 Session Manager 插件安装

注意

如果需要卸载此插件,请运行 sudo dpkg -r session-manager-plugin

验证 Session Manager 插件安装

运行以下命令验证是否已成功安装 Session Manager 插件。

session-manager-plugin

如果安装成功,将返回以下消息。

The Session Manager plugin is installed successfully. Use the AWS CLI to start a session.

您还可以通过在 AWS CLI 中运行以下命令来测试安装。在下面的命令中,将 instance-id 替换为您自己的信息。

aws ssm start-session --target instance-id

仅当 Session Manager 管理员已授予您使用 Session Manager 访问目标托管式节点所需的 IAM 权限时,此命令才有效。

GitHub 上的 Session Manager 插件

GitHub 上提供了 Session Manager 插件的源代码,您可以根据需要调整插件。我们鼓励您针对要包含的更改提交提取请求。但是,Amazon Web Services 不支持运行此软件的修改副本。

(可选)开启 Session Manager 插件日志记录

Session Manager 插件包括一个允许对运行的会话进行日志记录的选项。默认情况下,日志记录处于关闭状态。

如果允许日志记录,则 Session Manager 插件会在本地计算机上为应用程序活动 (session-manager-plugin.log) 和错误 (errors.log) 创建日志文件。

开启 Session Manager 插件的日志记录 (Windows)

  1. 找到插件的 seelog.xml.template 文件。

    默认位置是 C:\Program Files\Amazon\SessionManagerPlugin\seelog.xml.template

  2. 将文件名更改为 seelog.xml

  3. 打开文件,然后将 minlevel="off" 更改为 minlevel="info"minlevel="debug"

    注意

    默认情况下,有关打开数据通道和重新连接会话的日志条目在 INFO (信息) 级别记录。数据流(数据包和确认)条目在 DEBUG (调试) 级别记录。

  4. 更改要修改的其他配置选项。可以更改的选项包括:

    • 调试级别:您可以将调试级别从 formatid="fmtinfo" 更改为 outputs formatid="fmtdebug"

    • 日志文件选项:您可以更改日志文件选项,包括日志的存储位置,但日志文件名除外。

      重要

      不要更改文件名,否则日志记录无法正常工作。

      <rollingfile type="size" filename="C:\Program Files\Amazon\SessionManagerPlugin\Logs\session-manager-plugin.log" maxsize="30000000" maxrolls="5"/> <filter levels="error,critical" formatid="fmterror"> <rollingfile type="size" filename="C:\Program Files\Amazon\SessionManagerPlugin\Logs\errors.log" maxsize="10000000" maxrolls="5"/>
  5. 保存该文件。

启用 Session Manager 插件的日志记录(Linux 和 macOS)

  1. 找到插件的 seelog.xml.template 文件。

    默认位置是 /usr/local/sessionmanagerplugin/seelog.xml.template

  2. 将文件名更改为 seelog.xml

  3. 打开文件,然后将 minlevel="off" 更改为 minlevel="info"minlevel="debug"

    注意

    默认情况下,有关打开数据通道和重新连接会话的日志条目在 INFO (信息) 级别记录。数据流(数据包和确认)条目在 DEBUG (调试) 级别记录。

  4. 更改要修改的其他配置选项。可以更改的选项包括:

    • 调试级别:您可以将调试级别从 formatid="fmtinfo" 更改为 outputs formatid="fmtdebug"

    • 日志文件选项:您可以更改日志文件选项,包括日志的存储位置,但日志文件名除外。

      重要

      不要更改文件名,否则日志记录无法正常工作。

      <rollingfile type="size" filename="/usr/local/sessionmanagerplugin/logs/session-manager-plugin.log" maxsize="30000000" maxrolls="5"/> <filter levels="error,critical" formatid="fmterror"> <rollingfile type="size" filename="/usr/local/sessionmanagerplugin/logs/errors.log" maxsize="10000000" maxrolls="5"/>
      重要

      如果使用指定的默认目录存储日志,则必须使用 sudo 运行会话命令,或者给安装插件的目录指定完全读写权限。要绕过这些限制,请更改存储日志的位置。

  5. 保存该文件。

Session Manager 插件最新版本和发布历史记录

本地计算机必须运行支持的 Session Manager 插件版本。当前支持的最低版本为 1.1.17.0。如果运行的是更早的版本,则 Session Manager 操作可能会失败。

要查看使用的是不是最新版本,请在 AWS CLI 中运行以下命令。

注意

仅当插件位于操作系统类型的默认安装目录中时,此命令才返回结果。您也可以在 VERSION 文件(位于安装此插件的目录中)内容中找到版本信息。

session-manager-plugin --version

下表列出了 Session Manager 插件的所有版本,以及每个版本所含的功能和增强功能。

版本 发行日期 详细信息
1.2.398.0

2022 年 10 月 14 日

改进:支持 Golang 版本 1.17。更新 macOS 的默认会话管理器插件运行程序以使用 Python3。更新从 SSMCLI 到会话管理器插件的导入路径。
1.2.339.0

2022 年 6 月 16 日

错误修复:修复端口会话的空闲会话超时问题。
1.2.331.0

2022 年 5 月 27 日

错误修复:修复当本地服务器在超时前无法连接时提前关闭端口会话的问题。
1.2.323.0

2022 年 5 月 19 日

错误修复:禁用 smux 保持活动状态以使用空闲会话超时功能。
1.2.312.0

2022 年 3 月 31 日

增强功能:支持更多的输出消息有效负载类型。
1.2.295.0

2022 年 1 月 12 日

错误修复:客户端在代理变为非活动状态时重新发送流数据而导致的会话挂起,以及 start_publicationpause_publication 消息的不正确日志。
1.2.279.0

2021 年 10 月 27 日

增强功能:面向 Windows 平台打包成 zip 格式。
1.2.245.0

2021 年 8 月 19 日

增强功能:将 aws-sdk-go 升级到最新版本(v1.40.17)以支持 AWS IAM Identity Center (successor to AWS Single Sign-On)。
1.2.234.0

2021 年 7 月 26 日

错误修复:处理交互式会话类型中会话突然终止的情况。
1.2.205.0

2021 年 6 月 10 日

增强功能:添加对已签名 macOS 安装程序的支持。
1.2.54.0

2021 年 1 月 29 日

增强功能:添加对在 NonInteractiveCommands 执行模式中运行会话的支持。
1.2.30.0

2020 年 11 月 24 日

增强功能:(仅限端口转发会话)整体性能提升。

1.2.7.0

2020 年 10 月 15 日

增强功能:(仅限端口转发会话)延迟减少并且整体性能提升。

1.1.61.0

2020 年 4 月 17 日

增强功能:添加对 Linux 和 Ubuntu 的 ARM 支持。

1.1.54.0

2020 年 1 月 6 日

错误修复:处理 Session Manager 插件未准备就绪时丢弃数据包的争用情况。

1.1.50.0

2019 年 11 月 19 日

增强功能:添加了将端口转发到本地 unix 套接字的支持。

1.1.35.0

2019 年 11 月 7 日

增强功能:(仅限端口转发会话)在本地用户按 Ctrl+C 时将 TerminateSession 命令发送到 SSM Agent。

1.1.33.0 2019 年 9 月 26 日 增强功能:(仅限端口转发会话)当客户端断开 TCP 连接时,向服务器发送断开连接信号。
1.1.31.0 2019 年 9 月 6 日 增强功能:更新以保持端口转发会话打开,直到远程服务器关闭连接。

1.1.26.0

2019 年 7 月 30 日

增强功能:更新以限制会话期间的数据传输速率。

1.1.23.0

2019 年 7 月 9 日

增强功能:添加对使用 Session Manager 运行 SSH 会话的支持。

1.1.17.0 2019 年 4 月 4 日

增强功能:添加了使用 AWS Key Management Service (AWS KMS) 进一步加密会话数据的支持。

1.0.37.0 2018 年 9 月 20 日

增强功能:Windows 版本错误修复。

1.0.0.0 2018 年 9 月 11 日

发布 Session Manager 插件的初始版本。