实例登录凭证管理(登录名/密码/密钥对)

实例无默认密码,如忘记密码可重置。创建实例时如未设置登录名,则会使用默认登录名。

操作系统

默认登录名

说明

Linux

root

对应Linux系统的超级管理员用户。

Windows

Administrator

对应Windows系统的超级管理员用户。

重要

root用户权限较高,直接使用存在安全风险。建议使用ecs-user,通过sudo获取临时root权限执行敏感操作。

一、密码管理

1.1 重置密码(不知道/忘记原密码)

在线重置密码无需重启,建议优先尝试在线重置密码。

在线重置密码(不重启)

  1. 进入ECS控制台-实例,选择地域与资源组,找到待操作实例。

  2. 根据以下指引,进入重置实例密码功能对话框。

    简捷版控制台

    标准版控制台

    单击重置密码

    image

    单击操作列下的image > 重置实例密码

    image

  3. 重置实例密码对话框,完成如下配置后单击确认修改等待密码重置完成。其余配置保持默认。

    • 新密码/确认密码:输入实例新密码。请为实例设置强密码(包含大小写字母、数字、特殊字符)。

    • 重置密码方式在线重置密码

      重要

      如无法选择在线重置实例密码,请使用离线重置密码(需重启)

    若提示重置密码失败,请使用离线重置密码(需重启)

离线重置密码(需重启)

重要

离线重置密码需要重启实例才能生效。重启可能会中断实例中的业务,请合理规划时间。

  1. 进入ECS控制台-实例,选择地域与资源组,找到待操作实例。

  2. 根据以下指引,进入重置实例密码功能对话框。

    简捷版控制台

    标准版控制台

    单击重置密码

    image

    单击操作列下的image > 重置实例密码

    image

  3. 重置实例密码对话框,完成如下配置后单击确认修改等待密码重置完成。

    • 新密码/确认密码:输入新实例密码。请为实例设置强密码(包含大小写字母、数字、特殊字符)。

    • 重置密码方式离线重置密码

  4. 重启实例

    重置密码需要重启实例才能生效。可在业务低峰期重启,以免影响业务稳定性。

  5. 通过VNC连接并登录实例

    VNC登录成功,代表在操作系统中,密码已经成功重置。

    如果VNC登录实例成功,但Workbench等工具登录失败,证明密码已经重置成功,可能是SSH配置存在问题,建议通过使用自助问题排查工具定位问题

1.2 修改密码(知道原密码)

建议优先从控制台在线重置密码。

在线重置密码

  1. 进入ECS控制台-实例,选择地域与资源组,找到待操作实例。

  2. 根据不同的控制台页面,进入重置实例密码功能对话框。

    简捷版控制台

    标准版控制台

    单击重置密码

    image

    单击操作列下的image > 重置实例密码

    image

  3. 重置实例密码对话框,完成如下配置后单击确认修改等待密码重置完成。其余配置保持默认。

    • 新密码/确认密码:输入新实例密码。请为实例设置强密码(包含大小写字母、数字、特殊字符)。

    • 重置密码方式在线重置密码

      重要

      如无法选择在线重置实例密码,请登录实例手动修改密码

    若提示重置密码失败,请登录实例手动修改密码

登录实例手动修改密码

Windows实例

Windows Server 2019操作系统为例:

  1. 使用Workbench登录Windows

  2. 右键image.png,单击运行(R),输入compmgmt.msc并按Enter键。

  3. 在左侧导航栏,选择计算机管理 > 本地用户和组 > 用户

  4. 右键需要修改密码的用户名称(如Administrator),单击设置密码

  5. 为 Administrator 设置密码对话框中,单击继续,输入新密码确认密码

    重要

    请设置强密码(包含大小写字母、数字、特殊字符)。

  6. 单击确定后,系统会显示密码已设置的确认信息,代表密码修改成功。

Linux实例

Alibaba Cloud Linux 3操作系统为例:

  1. 使用Workbench终端连接登录Linux实例(SSH)

  2. 运行以下命令:

    请将 <username> 替换为待修改密码的用户名。
    sudo passwd <username>
  3. 输入新密码后按Enter键,再次输入新密码并按Enter键。

    重要

    请设置强密码(包含大小写字母、数字、特殊字符)。

  4. 修改成功后,系统输出类似以下信息:

    passwd: all authentication tokens updated successfully.

二、密钥对管理

创建实例时,可直接绑定一个已在阿里云创建或导入的密钥对,用于登录。如果创建实例时未绑定密钥对,需为实例绑定密钥对

密钥对是一种更安全的凭证,可以有效抵御暴力破解、字典攻击等。它包含两部分:公钥(存储在实例内)、私钥(由您个人保管)。登录实例时,必须提供私钥以完成身份验证。

密钥对认证原理

简化后的SSH密钥对认证流程如图所示。在客户端发起登录请求后,服务端会通过公钥加密一个随机字符串,客户端通过私钥解密该字符串返回给服务端,通过对比两个字符串是否一致来认证身份。

image
Windows实例使用密钥对须在实例中开启SSH服务,且不支持控制台管理。

2.1 创建/导入

控制台

创建密钥对

  1. 进入ECS控制台-密钥对,在左上角选择地域与资源组。

    ECS实例仅支持绑定与其同地域的密钥对。
  2. 单击创建密钥对,创建类型选择自动创建密钥对

  3. 单击确定

    密钥对创建成功后,浏览器自动下载私钥文件(密钥对名称.pem)到本地。

导入密钥对

支持导入的密钥对加密方式

  • rsa

  • dsa

  • ssh-rsa

  • ssh-dss

  • ecdsa

  1. 根据私钥查看对应公钥

    本地为Linux/macOS

    使用 ssh-keygen 命令从一个现有的私钥文件中提取并显示其对应的公钥

    <path_to_key_pair>为私钥文件的路径,例如/path_to_key_pair/my-key-pair.pem
    ssh-keygen -y -f <path_to_key_pair>

    返回公钥信息:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA****+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIPxxxxxxxxxx/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcxxxxxxxxxxx/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjxxxxxxxxxx+lHtTGiAIRG1riyNRVC47ZEVCxxxxxx

    本地为Windows系统

    完成以下操作,查看公钥信息:

    1. 启动PuTTYgen

    2. 单击Load

    3. 选择.ppk.pem文件。

      PuTTYgen会显示公钥信息。

  2. 导入密钥对(公钥)

    1. 进入ECS控制台-密钥对,在左上角选择地域。

      ECS实例仅支持绑定与其同地域的密钥对。
    2. 单击创建密钥对,创建类型选择导入已有密钥对,并提供公钥内容

    3. 单击确定,完成导入。

API

2.2 绑定/换绑

控制台

说明

Linux实例,支持在控制台绑定、解绑、换绑密钥对。

创建实例时绑定密钥对

可在通过自定义购买创建实例时,设置登录凭证密钥对,然后选择已创建的密钥对

绑定/换绑密钥对

重要
  • 在控制台绑定/换绑密钥对需要重启实例才能生效。重启可能会中断实例中的业务,请合理规划时间。

  • 每个实例在控制台最多绑定一个密钥对,如需绑定多个,请在实例内手动绑定

控制台绑定/换绑(需重启)

进入ECS控制台-实例,在左上角选择地域与资源组,找到对应ECS实例后,根据以下指引操作:

简捷版控制台

标准版控制台

单击全部操作 > 绑定密钥对,选择已创建的密钥对后,单击确定。重启实例后生效。

image

单击操作列下的image > 绑定密钥对,选择已创建的密钥对后,单击确定。重启实例后生效。

image

实例内手动绑定(无需重启)

  1. 生成密钥对

    不同的工具生成密钥对的步骤有所差别,本步骤以ssh-keygen工具为例。

    输入以下命令生成密钥对。

    ssh-keygen -t rsa -b 2048 -f id_rsa

    参数说明:

    • -t rsa:代表密钥类型为rsa密钥对。

    • -b 2048:代表密钥长度为2048位。

    • -f id_rsa:代表生成密钥对的文件名以及保存位置。

    系统将提示你输入一个口令(passphrase)。这个口令用于保护你的私钥。设置口令是推荐的安全措施。如果不需要口令,直接按回车键继续。

    命令执行成功后,当前目录下会生成两个文件:

    • id_rsa:你的私钥。

    • id_rsa.pub:你的公钥。

    重要

    请妥善保存私钥,不要泄漏给他人。

  2. 为实例绑定公钥

    使用Workbench登录实例后,按以下步骤操作。

    root用户绑定公钥与为非root用户绑定公钥操作有所差异,根据实际情况选择对应操作。

    设置root用户的公钥

    1. 创建authorized_keys配置文件。

      如果 /root/.ssh 目录或 authorized_keys 文件不存在,运行以下命令创建。

      sudo mkdir /root/.ssh
      sudo touch /root/.ssh/authorized_keys
    2. 添加公钥。

      使用文本编辑器(如 Vim)打开authorized_keys文件。

      sudo vim /root/.ssh/authorized_keys

      将你的公钥内容粘贴到文件中。可配置多个公钥,每个公钥占一行。配置完成后保存并关闭文件。

    3. 设置文件权限。

      SSH 要求严格的权限设置,错误的权限会导致 SSH 登录失败。

      运行以下命令,设置正确的权限。

      sudo chmod 700 /root/.ssh
      sudo chmod 600 /root/.ssh/authorized_keys

    设置非root用户的公钥

    1. 创建authorized_keys配置文件。

      如果 /root/.ssh 目录或 authorized_keys 文件不存在,运行以下命令创建。

      命令中<username>为待绑定公钥用户的用户名。
      sudo mkdir /home/<username>/.ssh
      sudo touch /home/<username>/.ssh/authorized_keys
    2. 添加公钥。

      使用文本编辑器(如 Vim)打开authorized_keys文件。

      sudo vim /home/<username>/.ssh/authorized_keys

      将你的公钥内容粘贴到文件中。可配置多个公钥,每个公钥占一行。配置完成后保存并关闭文件。

    3. 设置文件权限。

      SSH 要求严格的权限设置,错误的权限会导致 SSH 登录失败。

      运行以下命令,设置正确的权限。

      sudo chown -R <username>:<username> /home/<username>/.ssh
      sudo chmod 700 /home/<username>/.ssh
      sudo chmod 600 /home/<username>/.ssh/authorized_keys
  3. 开启SSH服务的公钥认证功能

    配置公钥后,必须在服务器上启用 SSH 公钥认证。否则,密钥登录会失败。

    1. 备份SSH配置文件/etc/ssh/sshd_config

      sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    1. 使用文本编辑器(如 Vim)打开/etc/ssh/sshd_config文件,并找到PubkeyAuthentication参数,设置为yes,代表开启公钥认证功能。

      sudo vim /etc/ssh/sshd_config
    2. 重启SSH服务以应用更改。

      Alibaba Cloud Linux 3为例:

      sudo systemctl restart sshd
      部分操作系统(Ubuntu/Debian)的SSH服务名为ssh而非sshd,请根据实际情况调整。
      重要

      如果正通过SSH的方式连接到实例,重启服务可能导致连接中断,服务重启完成后,即可重新连接。

API

说明

Linux实例支持通过API绑定/换绑/解绑密钥对。

  • 创建实例时设置密钥对:在调用RunInstances创建实例时,将KeyPairName设置为对应的密钥对名称。

  • 绑定/换绑密钥对:调用AttachKeyPair,并指定密钥对名称KeyPairName和实例IDInstanceIds

  • 解绑密钥对:调用DetachKeyPair,并指定密钥对名称KeyPairName和实例IDInstanceIds

2.3 解绑

重要

在控制台解绑密钥对需要重启实例才能生效。重启可能会中断实例中的业务,请合理规划时间。

控制台解绑(需重启)

进入ECS控制台-实例,在左上角选择地域与资源组,找到对应ECS实例后,根据以下指引操作:

简捷版控制台

标准版控制台

全部操作,单击绑定密钥对,单击解绑。重启实例后生效。

image

单击操作列下的image > 解绑密钥对,单击解绑。重启实例后生效。

image

实例内手动解绑(无需重启)

可在实例内手动清除authorized_keys中存储的公钥,实现解绑密钥对。区分与不用用户,authorized_keys配置文件路径如下:

  • root用户/root/.ssh/authorized_keys

  • root用户/home/<username>/.ssh/authorized_keys

    其中<username>为待绑定公钥用户的用户名

2.4 删除

控制台

重要

已绑定实例的密钥对不支持删除。

  1. 进入ECS控制台-密钥对,在左上角选择地域与资源组。

  2. 找到需要删除的密钥对,单击操作列下的删除。完成密钥对的删除。

API

调用DeleteKeyPairs,并指定KeyPairNames为要删除的密钥对名称列表。

三、多用户远程登录

在需要设置多个用户使用ECS实例时,请遵循以下步骤,创建普通用户并启用远程访问。

Linux系统

使用Workbench登录实例,按以下步骤创建用户:

  1. 创建用户

    命令中<username>需替换为要创建用户的用户名。例如创建名为exampleuser的用户时,可执行sudo useradd -m exampleuser
    sudo useradd -m <username>
  2. 设置密码/密钥对

    绑定密钥对

    1. 在本机生成密钥对文件。

      重要

      安全起见,请不要在实例中通过ssh-keygen创建密钥对,请不要将生成的私钥保存在需要连接的ECS实例中。

      不同的工具生成密钥对的步骤有所差别,本步骤以ssh-keygen工具为例。

      输入以下命令生成密钥对。

      ssh-keygen -t rsa -b 2048 -f id_rsa

      参数说明:

      • -t rsa:代表密钥类型为rsa密钥对。

      • -b 2048:代表密钥长度为2048位。

      • -f id_rsa:代表生成密钥对的文件名以及保存位置。

      系统将提示你输入一个口令(passphrase)。这个口令用于保护你的私钥。设置口令是推荐的安全措施。如果不需要口令,直接按回车键继续。

      命令执行成功后,当前目录下会生成两个文件:

      • id_rsa:你的私钥。

      • id_rsa.pub:你的公钥。

      重要

      请妥善保存私钥,不要泄漏给他人。

    2. 为用户绑定公钥。

      1. 创建authorized_keys配置文件。

        如果 /root/.ssh 目录或 authorized_keys 文件不存在,运行以下命令创建。

        命令中<username>为待绑定公钥用户的用户名。
        sudo mkdir /home/<username>/.ssh
        sudo touch /home/<username>/.ssh/authorized_keys
      2. 添加公钥。

        使用文本编辑器(如 Vim)打开authorized_keys文件。

        sudo vim /home/<username>/.ssh/authorized_keys

        将你的公钥内容粘贴到文件中。可配置多个公钥,每个公钥占一行。配置完成后保存并关闭文件。

      3. 设置文件权限。

        SSH 要求严格的权限设置,错误的权限会导致 SSH 登录失败。

        运行以下命令,设置正确的权限。

        sudo chown -R <username>:<username> /home/<username>/.ssh
        sudo chmod 700 /home/<username>/.ssh
        sudo chmod 600 /home/<username>/.ssh/authorized_keys
    3. 开启SSH服务的公钥认证功能。

      配置公钥后,必须在服务器上启用 SSH 公钥认证。否则,密钥登录会失败。

      1. 备份SSH配置文件/etc/ssh/sshd_config

        sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
      1. 使用文本编辑器(如 Vim)打开/etc/ssh/sshd_config文件,并找到PubkeyAuthentication参数,设置为yes,代表开启公钥认证功能。

        sudo vim /etc/ssh/sshd_config
      2. 重启SSH服务以应用更改。

        Alibaba Cloud Linux 3为例:

        sudo systemctl restart sshd
        部分操作系统(Ubuntu/Debian)的SSH服务名为ssh而非sshd,请根据实际情况调整。
        重要

        如果正通过SSH的方式连接到实例,重启服务可能导致连接中断,服务重启完成后,即可重新连接。

    设置密码

    运行以下命令:

    请将 <username> 替换为待修改密码的用户名。
    sudo passwd <username>

    输入新密码后按Enter键,再次输入新密码并按Enter键。

    修改成功后,系统输出类似以下信息:

    passwd: all authentication tokens updated successfully.
  3. (验证)使用新创建的用户远程登录到ECS实例。

Windows系统

重要

默认情况下,Windows系统仅支持两个不同的用户同时通过RDP远程连接实例,如需两个以上用户同时登录Windows实例,需要使用微软的远程桌面服务(Remote Desktop Services)的能力。

使用Workbench登录实例,按以下步骤操作:

  1. 创建用户

    1. 打开控制面板,找到用户账户单击下面的更改账户类型

    image

    1. 管理账户页面,单击添加用户账户,进入添加用户页面。

    image

    1. 在添加用户页面,根据界面提示,设置新用户的用户名及密码。

      本示例以创建exampleuser为例,请根据需求设置用户名
    2. 单击下一步,然后单击完成。完成新用户的创建。

    image

  2. 将新用户添加到Remote Desktop Users用户组

    只有Remote Desktop Users用户组下的用户,才能以远程登录的方式登录实例。

    1. 在任务栏的搜索框搜索计算机管理单击搜索到的计算机管理进入计算机管理页面。

    image

    1. 系统工具 > 本地用户和组 > 下,找到Remote Desktop Users用户组。双击进入Remote Desktop Users属性页面。

    image

    1. 操作流程如图所示。

      1. Remote Desktop Users属性页面,单击添加

      2. 输入步骤2中创建用户的用户名,单击检查名称,之后输入框会自动根据输入的用户名补全用户的名称全称。

      3. 单击确定。在Remote Desktop Users属性页面依次单击应用确定。完成将用户添加到用户组的操作。

    image

  3. (验证)使用新创建的用户远程登录到ECS实例。

四、常见问题

Q1:ECS默认用户名、初始用户名、默认登录名、初始登录名是什么?

  • Linux系统实例:默认为root,若创建实例时设置了使用ecs-user则为ecs-user。

  • Windows系统实例:默认为Administrator

Q2:ECS默认密码、初始密码、默认远程密码、初始登录密码是什么?

没有。

出于安全考虑,阿里云不会为ECS实例设置默认或初始密码。如在创建实例时未设置密码。重置密码(不知道/忘记原密码)

Q3:如何查看实例密码?

阿里云不会保存您设置的实例密码,因此不支持查看。

Q4:凭证找回(忘记登录名、忘记密码)

忘记登录名:可通过控制重置密码功能查看。创建实例时设置的登录名会在重置实例密码对话框的最上方显示。

忘记密码:重置密码(不知道/忘记原密码)

Q5:在线重置密码失败的原因?

大多数情况下,是由于实例中的安全软件拦截云助手修改密码指令造成的。建议使用离线重置密码

Q6:「root」和「ecs-user」切换

  • 原来使用root,切换到ecs-user

    仅通过自定义购买创建部分Linux镜像的实例时,支持设置ecs-user

    实例创建后,不支持直接切换到ecs-user,但可通过添加多用户远程登录的方式自行创建ecs-user后,并为该用户授予sudo权限,达到切换的效果。

  • 原来使用ecs-user,切换到root

    强烈建议继续使用ecs-user并通过sudo执行需要特权的命令,而不是直接使用root用户登录。

    如果确实需要在已登录的会话中切换到root用户,可通过ecs-user登录实例后,执行sudo su命令,切换到root用户。

控制台的离线重置密码、绑定密钥对等功能仅对创建实例时设置的登录名生效。

Q7:如何让Linux实例同时支持「SSH 密钥对」和「密码」两种登录方式?

可通过修改 SSH 服务的/etc/ssh/sshd_config配置文件 实现。

  • 开启SSH密钥对认证(推荐、更安全):由PubkeyAuthentication选项控制,设为yes代表开启密钥对认证。修改配置后需重启实例的SSH服务。

  • 开启SSH密码认证(不推荐、安全系数低):由PasswordAuthentication选项控制,设为yes代表开启密码认证。修改配置后需重启实例的SSH服务。