会话管理(Session Manager)是云助手提供的功能,用于便捷安全地远程连接ECS实例。本文介绍如何通过会话管理进行SSH(Secure Shell)连接。

前提条件

  • 需要连接的目标实例中已安装云助手Agent,并且Windows客户端版本大于等于2.1.3.256、Linux客户端版本大于等于2.2.3.256。具体操作,请参见安装云助手Agent
  • 已开启会话管理功能,具体操作,请参见通过会话管理连接实例

背景信息

使用会话管理CLI转发SSH方式远程连接目标ECS实例时,无需暴露实例公网IP与端口,只需获取阿里云ECS实例ID与密码,即可通过会话管理客户端连接目标实例。相比SSH、VNC等方式,可以更便捷地远程连接ECS实例,且兼具安全性。关于会话管理的更多信息,请参见会话管理概述

会话管理客户端支持Linux、macOS和Windows操作系统,不同操作系统使用方式不同,具体说明如下:

Linux、macOS操作系统

  1. 登录会话管理客户端。
  2. 在会话管理客户端安装ali-instance-cli。
    不同操作系统的客户端安装方式不同,具体说明如下:
    • Linux
      curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli
      chmod a+x ali-instance-cli
    • macOS:
      curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli
      chmod a+x ali-instance-cli
  3. 创建config文件并添加相关配置。
    1. 在当前用户目录下创建.ssh目录,本文以/home/test为例。
      mkdir .ssh
    2. 切换到.ssh目录下。
      cd .ssh
    3. 创建并打开config文件。
      vim config
    4. i进入编辑模式。
    5. config文件中添加如下内容。
      说明 ali-instance-cli需要替换成文件的绝对路径,例如/home/test/ali-instance-cli
      host i-*
          ProxyCommand sh -c "ali-instance-cli ssh -i '%h' --port  '%p'" 
    6. Esc键,退出编辑模式。
    7. 输入:wq,并按Enter键,保存并退出。
    8. config文件添加执行权限。
      chmod 755 config
  4. 配置AccessKey、STS Token或CredentialsURI。
    关于如何获取AccessKey或STS Token,请参见创建AccessKey什么是STS
    1. 切换到test目录。
      cd /home/test
    2. 配置鉴权认证方式。

      支持以下三种配置方式:

      • AccessKey配置方式
        执行如下命令,根据界面提示,输入AccessKey ID、AccessKey Secret、RegionID。
        ./ali-instance-cli configure --mode AK
      • STS Token配置方式
        说明 regionaksktoken要修改为实际的Region ID、AccessKey ID、AccessKey Secret和STS Token。
        ./ali-instance-cli configure set --mode StsToken --region "region" --access-key-id "ak"  --access-key-secret "sk"   --sts-token "token"
      • CredentialsURI配置方式
        执行如下命令,根据界面提示,输入CredentialsURI和RegionID。
        说明 CredentialsURI为您配置的认证服务器的地址。
        ./ali-instance-cli configure --mode=CredentialsURI
      当回显出现如图所示内容时,说明鉴权方式已配置完成。配置鉴权方式
  5. 运行SSH命令连接目标实例。
    支持以下两种方式连接目标实例:
    说明 useraliyun instance id要修改为实际的用户名和实例ID。
    • 密码方式
      ssh user@aliyun instance id
    • 密钥方式
      ssh -i key.pem user@aliyun instance id
    当回显如下图所示时,说明已经通过Session Manager转发SSH方式连接到目标实例。连接实例

Windows操作系统

使用会话管理客户端的Windows操作系统已安装OpenSSH,具体操作,请参见使用云助手在Windows实例中安装OpenSSH程序

  1. 登录会话管理客户端。
    具体操作,请参见连接方式概述
  2. 在会话管理客户端下载ali-instance-cli。

    下载Windows版ali-instance-cli并保存到本地文件夹中,如C:\Users\test

  3. 创建config文件并添加相关配置。
    1. C:\Users\username下创建.ssh文件夹。
      说明 C:\Users\username需替换成实际的文件夹,如C:\Users\test
    2. .ssh文件夹下创建config文件。
    3. config文件中添加如下内容。

      ali-instance-cli.exe需要替换成文件的绝对路径,例如C:\Users\test\ali-instance-cli.exe

      host i-*
          ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "ali-instance-cli.exe ssh -i '%h' --port  '%p'"
  4. 配置AccessKey或STS Token。
    关于如何获取AccessKey或STS Token,请参见创建AccessKey什么是STS
    1. 选择开始 > 运行,输入cmd,按Enter键,打开命令提示符窗口。
    2. 切换到test目录。
      cd C:\Users\test
    3. 配置鉴权认证方式。

      支持以下三种配置方式:

      • AccessKey配置方式
        执行如下命令,根据界面提示,输入AccessKey ID、AccessKey Secret、RegionID。
        ali-instance-cli.exe configure --mode AK
      • STS Token配置方式
        说明 regionaksktoken要修改为实际的Region ID、AccessKey ID、AccessKey Secret和STS Token。
        ali-instance-cli.exe configure set --mode StsToken --region "region" --access-key-id "ak"  --access-key-secret "sk"   --sts-token "token"
      • CredentialsURI配置方式
        执行如下命令,根据界面提示,输入CredentialsURI和RegionID。
        ali-instance-cli.exe configure --mode=CredentialsURI

      当回显出现如图所示内容时,说明鉴权方式已配置完成。

      配置鉴权方式
  5. 运行SSH命令连接目标实例。
    支持以下两种方式连接目标实例:
    说明 useraliyun instance id要修改为实际的用户名和实例ID。
    • 密码方式
      ssh user@aliyun instance id
    • 密钥方式
      ssh -i key.pem user@aliyun instance id

    当回显如下图所示时,说明已经通过Session Manager转发SSH方式连接到目标实例。

    链接实例

常见问题

当使用会话管理客户端出现问题时,您可以通过查看log分析具体问题。
  • 查看会话管理客户端的日志:当前log目录,如/home/test/log/aliyun_ecs_session_log.2022XXXX
  • 查看云助手Agent日志:
    • Linux
      /usr/local/share/aliyun-assist/云助手版本号/log/
    • Windows
      C:\ProgramData\aliyun\assist\云助手版本号\log

若会话管理功能未开启,使用会话管理客户端连接远程实例,会出现ssh_exchange_identification: Connection closed by remote host的错误提示。并且,会话管理客户端的日志里面会出现session manager is disabled, please enable first。请通过控制台开启会话管理功能,具体操作,请参见通过会话管理连接实例