通过Workbench使用密码或密钥认证登录Linux实例

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

相比于VNC,Workbench支持多用户远程连接同一台Linux实例。登录实例时,Workbench有密码、密钥对、临时密钥对和凭据四种认证方式供您选择,非常便捷高效。

前提条件

  • 已创建服务关联角色。首次使用Workbench登录ECS实例时,系统会提示您创建Workbench服务关联角色。更多信息,请参见Workbench服务关联角色

    重要

    通过RAM用户使用Workbench登录ECS实例时,请确保已为该RAM用户授予AliyunECSWorkbenchFullAccess系统权限,否则会提示用户没有权限。关于如何授权,请参见为RAM用户授权

  • 实例已设置登录密码或者绑定密钥对。具体操作,请参见重置实例登录密码绑定SSH密钥对

  • 实例处于运行中状态。

  • 实例已安装云助手。具体操作,请参见安装云助手Agent

  • 实例所在安全组已允许Workbench服务相关的IP访问实例。安全组规则详情和实例的网络类型有关。具体操作,请参见添加安全组规则

    专有网络实例

    连接专有网络实例时,请在安全组规则页面的入方向页签添加安全组规则,如下表所示。

    授权策略

    优先级

    协议类型

    端口范围

    授权对象

    允许

    1

    自定义TCP

    • Linux实例默认开放22端口:选择SSH(22)

    • 如果您手动开放了其他端口:手动输入端口范围。

    • 如果通过实例的公网IP(包括固定公网IP和EIP)连接:添加47.96.60.0/24、118.31.243.0/24、8.139.112.0/24、8.139.99.192/26

    • 如果通过实例的专有网络私网IP连接:添加100.104.0.0/16。

    警告

    您也可以添加0.0.0.0/0,但存在安全风险,请谨慎使用。

    经典网络实例

    • 通过公网连接经典网络实例时,请在安全组规则页面的公网入方向页签添加安全组规则,如下表所示。

      授权策略

      优先级

      协议类型

      端口范围

      授权对象

      允许

      1

      自定义TCP

      • Linux实例默认开放22端口:选择SSH(22)

      • 如果您手动开放了其他端口:手动输入端口范围。

      通过实例的公网IP(包括固定公网IP和EIP)连接:添加47.96.60.0/24、118.31.243.0/24、8.139.112.0/24、8.139.99.192/26

      警告

      您也可以添加0.0.0.0/0,但存在安全风险,请谨慎使用。

    • 通过内网连接经典网络实例,请在安全组规则页面的入方向页签添加安全组规则,如下表所示。

      授权策略

      优先级

      协议类型

      端口范围

      授权对象

      允许

      1

      自定义TCP

      • Linux实例默认开放22端口:选择SSH(22)

      • 如果您手动开放了其他端口:手动输入端口范围。

      通过实例的经典网络内网IP连接:添加11.195.184.0/24和11.246.55.0/24

      警告

      为内网入方向规则添加0.0.0.0/0存在高安全风险,不建议使用。

操作步骤

Workbench的远程连接会话默认维持6个小时,如果您超过6小时没有任何操作,连接会自动断开,您需要重新连接实例。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 在实例列表页面,找到需要连接的实例,单击对应操作列下的远程连接

  5. 在弹出的远程连接对话框中,单击通过Workbench远程连接对应的立即登录

  6. 在弹出的登录实例对话框中,输入登录信息。

    一般情况下按精简选项输入信息即可,如下表所示。

    配置项

    说明

    实例

    自动填充当前实例的信息,您也可以手动输入其他实例的IP或名称。

    网络连接

    • 专有网络实例支持选择公网IP或私网IP连接。

    • 经典网络实例支持选择公网IP或内网IP连接。

    关于不同网络类型说明,请参见专有网络概述经典网络的IP

    认证方式

    选择认证方式,支持的认证方式如下:

    • 密码认证:输入用户名(例如root或ecs-user),需要继续输入登录密码。

    • SSH密钥认证:输入用户名(例如root或ecs-user),需要继续输入或上传私钥。如果私钥文件已加密,还需要输入私钥口令。

    • 凭据认证:选择已定义好的凭据或者新增凭据。

      凭据用于存储实例的用户名、密码和密钥等信息,您无需每次登录都输入用户名、密码,直接选择凭据即可安全登录实例。如果您在Workbench中没有凭据,请新增凭据。具体操作,请参见新增凭据实现免密登录

    • 临时SSH密钥认证:直接填入需要登录的用户名(例如root或ecs-user)即可,默认使用root登录。

      说明

      临时SSH密钥认证功能基于云助手的公共命令实现。

      1. Workbench登录实例时生成一个有效时间为1分钟的临时SSH密钥对。

      2. 并触发云助手调用InvokeCommand,执行名称为ACS-ECS-EnableSshPublicKey-linux.shACS-ECS-SendSshPublicKey-linux.sh的公共命令,将公钥发送给目标实例,交于实例中运行的云助手Agent管理。

      3. Workbench通过临时密钥对成功登录实例。

      在Workbench侧,密钥对不会存储到数据库,有效时间为1分钟,失效后需要重新登录生成。

    在对话框底部单击完整选项可以展开更多配置项,如下表所示。

    配置项

    说明

    资源组

    默认为全部,即可以手动选择任一资源组的资源。

    区域

    默认为全部,即可以手动选择任一地域的资源。

    连接协议

    默认为终端连接(SSH)

    说明

    如果您需要使用远程桌面(RDP)连接Linux实例,需要在实例上安装RDP服务(例如xrdp)和图形化界面。关于如何安装图形化界面,请参见如何在Linux系统的ECS实例中安装图形界面

    端口

    连接协议为终端连接(SSH)时,默认端口为22。

    如果您修改过远程连接端口,请输入该端口。

    说明

    连接协议为远程桌面(RDP),默认端口为3389。

    语言环境

    偏好语言影响输出的内容,选择默认时,Workbench自动探测您远程主机的语言设置并进行合适的配置。

    字符集

    偏好字符集影响输出内容的显示结果,选择默认时,Workbench自动探测您远程主机的字符集设置并进行合适的配置。

  7. 单击确定

如果确定已满足本文的前提条件,连接实例时仍失败,请检查实例内部配置是否满足要求:

  • 开启SSHD的远程服务,例如Linux系统中的SSHD服务。

  • 开放终端连接端口,通常为22端口。

  • 如果使用root用户登录Linux实例,需要保证在/etc/ssh/sshd_config文件中配置PermitRootLogin yesPasswordAuthentication yes。具体操作,请参见为Linux实例开启root用户远程登录

新增凭据实现免密登录

以下操作指导您在Workbench中如何新增凭据,登录ECS实例时通过凭据进行身份认证。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 在实例列表页面,找到需要连接的实例,单击对应操作列下的远程连接

  5. 在弹出的远程连接对话框中,单击通过Workbench远程连接对应的立即登录

  6. 在弹出的登录实例对话框中,输入登录信息。

  7. 新增凭据。

    1. 一般情况下按精简选项输入信息即可,如下表所示。

      配置项

      说明

      实例

      自动填充,您也可以手动选择其他实例。

      网络连接

      • 专有网络实例支持选择公网IP或私网IP连接。

      • 经典网络实例支持选择公网IP或内网IP连接。

      认证方式

      1. 选择凭据认证

      2. 凭据下拉表选择新增凭据

    2. 新增凭据对话框中,输入新增凭据的信息。

      配置项

      说明

      凭据名称

      输入新增凭据的名称。

      用户名

      输入用户名,例如root或ecs-user。

      凭据类型

      支持以下类型:

      • 密码:必须继续输入实例的登录密码。

      • 私钥:必须继续输入或上传私钥文件。如果私钥文件已加密,还需要输入私钥口令。

      材料名称

      输入认证材料的名称。

      密码

      输入实例的登录密码。

      密码指纹

      根据认证材料自动生成密码指纹。

    3. 单击确定

  8. 登录实例对话框中,选择新增的凭据,然后单击确定

为Linux实例开启root用户远程登录

部分Linux系统中,SSHD服务默认禁用root用户远程登录,导致登录时提示用户名或密码错误。您可以按照以下步骤开启root用户远程登录。

  1. 使用VNC方式连接实例。

    具体操作,请参见使用VNC登录实例

  2. 打开SSH配置文件。

    vim /etc/ssh/sshd_config
  3. i键进入编辑模式。

  4. PermitRootLoginPasswordAuthentication参数值设置为yes,如下所示。

    PermitRootLogin yes
    PasswordAuthentication yes
  5. Esc键,输入:wq保存修改。

  6. 重启SSHD服务。

    systemctl restart sshd.service

常见问题

无法连接实例时,您可以自行排查。更多信息,请参见远程连接FAQGuestOS常见问题与修复方案