管理密钥对(Linux)

重要

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

阿里云SSH密钥对是一种安全便捷的登录认证方式,用于在SSH协议中进行身份验证和加密通信。由公钥和私钥组成,仅支持Linux实例,满足您对更高安全性、便利性的业务需求。本文为您介绍如何在控制台创建密钥对、导入密钥对、绑定密钥对、解绑密钥对、删除密钥对。

功能优势

相较于用户名和密码认证方式,使用SSH密钥对认证方式有以下优势:

  • 安全性:使用SSH密钥对登录认证更为安全可靠。

    • SSH密钥对安全强度远高于常规用户口令,可以杜绝暴力破解威胁。

    • 无法通过公钥推导出私钥。

  • 便捷性:

    • 如果您将公钥配置在Linux实例中,那么,在本地或者另外一台实例中,您可以无需输入密码,直接使用私钥通过SSH命令或相关工具登录目标实例。

    • 支持远程登录大量Linux实例,更加方便地管理您的实例。如果您需要批量维护多台Linux实例,推荐使用这种方式登录。

使用限制

  • 仅支持Linux系统的轻量应用服务器设置密钥对登录的方式。

  • 一个阿里云账号在一个地域下最多可以创建10个密钥对。

  • 控制台仅支持创建RSA 2048位密钥对。

创建或导入密钥对

您可以通过控制台创建密钥对,或者导入已有密钥对,便于您后期绑定轻量应用服务器实例,使用密钥对登录。

  1. 登录轻量应用服务器管理控制台

  2. 在左侧导航栏,单击密钥对

  3. 密钥对页面,单击创建密钥对

  4. 创建密钥对对话框中,根据界面提示配置参数后,单击确定

    自动创建密钥对

    参数说明如下表所示。

    参数

    说明

    密钥对名称

    输入您自定义的密钥名称。名称必须以大小写字母或中文开头,可包含数字、英文冒号(:)下划线(_)、短划线(-)等特殊符号,长度必须为2~64个字符。

    创建类型

    选中自动创建密钥对

    重要
    • 系统将自动下载密钥信息(文件后缀名为.pem)至本地主机,密钥仅有这一次下载机会,请您妥善保管。

    • 如果未出现下载弹窗,请在浏览器的下载页面查看是否有拦截。

    导入已有密钥对

    如果您已有密钥对,可以将已有密钥对导入控制台,便于使用已有密钥对登录轻量应用服务器。但已有密钥对必须为支持的加密方式,具体说明请参见Q2:导入已有密钥对支持哪些加密方式?

    参数说明如下表所示。

    参数

    说明

    密钥对名称

    输入您自定义的密钥名称。名称必须以大小写字母或中文开头,可包含数字、英文冒号(:)下划线(_)、短划线(-)等特殊符号,长度必须为2~64个字符。

    创建类型

    选中导入已有密钥对

    公钥内容

    将已有密钥对的公钥拷贝到此处。具体格式可将鼠标悬浮在Base64查看样例。获取待导入密钥对的公钥信息的具体操作,请参见Q3:如何查看公钥信息?

  5. 在弹出的创建密钥对对话框中,可以根据需求选择是否立即绑定实例。

    您也可以在创建密钥对后,绑定密钥对。具体操作,请参见绑定密钥对

绑定密钥对

待绑定的轻量应用服务器为运行中已停止状态。

重要
  • 一台轻量应用服务器只支持在控制台绑定一个密钥对。若您选择的轻量应用服务器已经绑定过其他密钥对,新绑定的密钥对将会覆盖已绑定的密钥对。

  • 为轻量应用服务器绑定密钥对后,服务器会自动禁止使用root用户及密码登录。如果您需要重新启用密码登录方式,需要修改服务器内的配置文件。具体操作,请参见重新启用密码登录方式

  • 如果您需要使用多个密钥对登录实例,则可以在实例内部手动修改~/.ssh/authorized_keys文件,添加多个密钥对。具体操作,请参见Q1:如何使用多个密钥对登录轻量应用服务器实例?

  1. 登录轻量应用服务器管理控制台

  2. 在左侧导航栏,单击密钥对

  3. 密钥对页面,在目标密钥对的操作列,单击绑定实例

  4. 在弹出的绑定实例对话框中,选择一台或多台Linux轻量应用服务器,然后单击image图标。

  5. 单击确定

  6. 在弹出的绑定实例对话框中,根据业务需求选择是否立即重启服务器。

    • 立即重启服务器:单击立即重启实例,重启服务器后密钥对生效。

      警告

      重启实例会造成您的实例停止工作,可能导致业务中断,建议您在非业务高峰期时执行该操作。

    • 稍后自行重启服务器:单击暂不重启,然后在您的业务低峰时间段自行重启服务器,以使密钥对生效。

密钥对生效后,您可以通过密钥对登录轻量应用服务器实例。具体操作,请参见通过密钥对远程连接Linux服务器

解绑密钥对

如果您需要更换密钥对或者某个用户不再需要访问特定实例,您可以解绑SSH密钥对,以提高实例的安全性或限制访问权限。

重要

为轻量应用服务器创建密钥且重启服务器使密钥生效后,服务器会自动禁止使用root用户及密码登录。如果您需要重新启用密码登录方式,需要修改服务器内的配置文件。具体操作,请参见重新启用密码登录方式

  1. 登录轻量应用服务器管理控制台

  2. 在左侧导航栏,单击密钥对

  3. 密钥对页面,在目标密钥对的操作列,单击解绑实例

  4. 在弹出的解绑实例对话框中,选择一台或多台Linux轻量应用服务器,然后单击image图标。

  5. 单击确定

  6. 在弹出的解绑实例对话框中,根据业务需求选择是否立即重启服务器。

    • 立即重启服务器:单击重启已解绑实例,重启服务器后密钥对解绑生效。

      警告

      重启实例会造成您的实例停止工作,可能导致业务中断,建议您在非业务高峰期时执行该操作。

    • 稍后自行重启服务器:单击暂不重启,然后在您的业务低峰时间段自行重启服务器,使密钥对解绑生效。

删除密钥对

如果密钥对不再使用,您需要先解绑密钥对,然后再删除。

  1. 登录轻量应用服务器管理控制台

  2. 在左侧导航栏,单击密钥对

  3. 密钥对页面,在目标密钥对的操作列,单击删除

  4. 在弹出的删除密钥对对话框中,单击确定

常见问题

Q1:如何使用多个密钥对登录轻量应用服务器实例?

A1:如果您需要使用多个密钥对登录实例,则可以在实例内部手动修改~/.ssh/authorized_keys文件,添加多个密钥对。具体操作如下:

  1. 使用已有的SSH密钥对连接Linux实例。具体操作,请参见通过密钥对远程连接Linux服务器

  2. 运行以下命令,编辑.ssh/authorized_keys文件。

    sudo vim .ssh/authorized_keys
  3. i键进入编辑模式,添加或替换公钥信息。

    • 添加公钥信息:在现有的公钥信息下方添加新的公钥信息,并保存。

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCys3aOkFm1Xh8iN0lijeQF5mz9Iw/FV/bUUduZjauiJa1KQJSF4+czKtqMAv38QEspiWStkSfpTn1g9qeUhfxxxxxxxxxx+XjPsf22fRem+v7MHMa7KnZWiHJxO62D4Ihvv2hKfskz8K44xxxxxxxxxx+u17IaL2l2ri8q9YdvVHt0Mw5TpCkERWGoBPE1Y8vxFb97TaE5+zc+2+eff6xxxxxxxxxx/feMeCxpx6Lhc2NEpHIPxMpjOv1IytKiDfWcezA2xxxxxxxxxx/YudCmJ8HTCnLId5LpirbNE4X08Bk7tXZAxxxxxxxxxx/FKB1Cxw1TbGMTfWxxxxxxxxxx imported-openssh-key
      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdlrdZwV3+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIPxxxxxxxxxxx/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcxxxxxxxxxx/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjxxxxxxxxxx+lHtTGiAIRG1riyNRVC47ZEVCg9iTWWGrWFvxxxxxxxxxx/9H9mPCO1Xt2fxxxxxxxxBtmR imported-openssh-key
      说明

      如果公钥文件中有多个公钥信息,则使用其对应的多个私钥均能登录Linux实例。

    • 替换公钥信息:删除现有的公钥信息,替换为新的公钥信息,并保存。

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdlrdZwV3+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIP6t0Mk5aPkK/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcV14uAy0yV6/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjGACGcXclex+lHtTGiAIRG1riyNRVC47ZEVCg9iTWWGrWFvVlnI0E3Deb/9H9mPCO1Xt2fxxxxxxxxBtmR imported-openssh-key
  4. 添加或替换公钥信息完成后,按Esc键退出编辑模式,输入:wq保存退出。

  5. 使用新的SSH密钥对连接Linux实例。具体操作,请参见通过密钥认证登录Linux实例

    如果能够使用新的私钥登录Linux实例,则表示添加或替换密钥对成功。

Q2:导入已有密钥对支持哪些加密方式?

A2:导入的密钥对必须支持以下任意一种加密方式:

  • rsa

  • dsa

  • ssh-rsa

  • ssh-dss

  • ecdsa

  • ssh-rsa-cert-v00@openssh.com

  • ssh-dss-cert-v00@openssh.com

  • ssh-rsa-cert-v01@openssh.com

  • ssh-dss-cert-v01@openssh.com

  • ecdsa-sha2-nistp256-cert-v01@openssh.com

  • ecdsa-sha2-nistp384-cert-v01@openssh.com

  • ecdsa-sha2-nistp521-cert-v01@openssh.com

Q3:如何查看公钥信息?

A3:查看公钥信息的具体操作如下:

本地为Windows操作系统

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

  1. 启动PuTTYgen。

  2. 单击Load

  3. 选择.ppk.pem文件。

    PuTTYgen会显示公钥信息。

本地为Linux或Mac系统

运行ssh-keygen命令,并指定.pem文件的路径。

ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem

返回公钥信息,类似如下所示:

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

在实例内部查看公钥信息

  1. 远程连接Linux实例。具体操作,请参见通过密钥对远程连接Linux服务器

  2. 执行以下命令,查看SSH密钥对的公钥信息。

    sudo cat ~/.ssh/authorized_keys
    说明

    公钥内容放在~/.ssh/authorized_keys文件内。在实例内打开该文件,会返回公钥信息。

相关操作

您可以通过API的方式管理密钥对: