本文介绍了如何在Windows和Linux环境中使用SSH密钥对登录Linux实例。

前提条件

在开始使用SSH密钥对连接Linux实例前,请确保您已经完成以下操作:
  • 在控制台创建密钥对并下载了.pem私钥文件,详细步骤请参见创建SSH密钥对
  • 持有一台分配了密钥对的Linux实例。您可以在创建ECS实例时分配密钥对,详细步骤请参见创建ECS实例。如果未在创建实例时分配密钥对,您也可以为已有实例绑定密钥对,详细步骤请参见绑定SSH密钥对
    说明 如果ECS实例处于运行中(Running)状态,绑定SSH密钥对后,您必须在控制台或者使用API重启实例,才能使操作生效。
  • 为实例所在的安全组添加以下安全组规则,详细步骤请参见添加安全组规则
    网络类型 网卡类型 规则方向 授权策略 协议类型 端口范围 授权类型 授权对象 优先级
    VPC 不需要配置 入方向 允许 SSH(22) 22/22 地址段访问 0.0.0.0/0 1
    经典网络 公网

本地为Windows环境

在控制台创建密钥对后自动生成的私钥文件格式为.pem,本节以PuTTYgen为例介绍如何转换私钥文件格式,并以PuTTY为例介绍如何通过SSH远程登录Linux实例。

  1. 下载并安装PuTTYgen和PuTTY。
    下载链接如下:
  2. .pem私钥文件转换为.ppk私钥文件。
    1. 启动PuTTYgen。
      本示例中的PuTTYgen版本为0.71。
    2. 选择Type of key to generateRSA,然后单击Load


    3. 选择All Files


    4. 选择待转换的.pem私钥文件。
    5. 在弹出的对话框中,单击确定
    6. 单击Save private key
    7. 在弹出的对话框中,单击
    8. 指定.ppk私钥文件的名称,然后单击保存
  3. 启动PuTTY。
  4. 配置用于身份验证的私钥文件。
    1. 选择Connection > SSH > Auth
    2. 单击Browse…
    3. 选择转换好的.ppk私钥文件。


  5. 配置连接Linux实例所需的信息。
    1. 单击Session
    2. Host Name (or IP address)中输入登录账号和实例公网IP地址。
      格式为root@IP 地址
    3. Port中输入端口号22
    4. 选择Connection typeSSH


  6. 单击Open
    当出现以下提示时,说明您已经成功地使用SSH密钥对登录了实例。

本地为Linux或其它支持SSH命令的环境

本节介绍如何在Linux或其他支持SSH命令的环境(例如Windows下的MobaXterm)下使用SSH密钥对登录Linux实例。

  • 通过命令配置所需信息并连接实例。
    1. 找到.pem私钥文件在本地机上的存储路径,例如/root/mysshkey.pem
      说明 此处路径和文件名称仅为示例,请根据实际情况修改。
    2. 运行以下命令修改私钥文件的属性。
      chmod 400 [.pem私钥文件在本地机上的存储路径]
      示例如下:
      chmod 400 /root/mysshkey.pem
    3. 运行以下命令连接至实例。
      ssh -i [.pem私钥文件在本地机上的存储路径] root@[公网IP地址]
      示例如下:
      ssh -i /root/mysshkey.pem root@10.10.xx.xxx
  • 通过config配置所需信息并通过命令连接实例。
    1. 进入根目录下的ssh目录,按照如下方式修改config文件。
      Host ecs    // 输入ECS实例的名称
      HostName 192.*.*.*   // 输入ECS实例的公网IP地址
      Port 22   // 输入端口号,默认为22
      User root   // 输入登录账号
      IdentityFile ~/.ssh/ecs.pem // 输入.pem私钥文件在本机的地址
    2. 保存config文件。
    3. 重启SSH。
    4. 运行命令连接至实例。
      ssh [ECS名称]
      示例如下:
      ssh ecs