Article / 文章中心

使用SSH密钥对连接Linux实例

发布时间:2021-04-08 点击数:522

SSH密钥对是一种安全便捷的登录认证方式。在Windows环境和支持SSH命令的环境(例如Linux环境、Windows下的MobaXterm)中,您均可以使用SSH密钥对连接Linux实例。

前提条件

  • 已创建密钥对并下载.pem私钥文件。
  • 实例处于运行中状态。
  • 已为实例绑定密钥对。
  • 已为实例分配固定公网IP或EIP。
  • 已为实例所在的安全组添加安全组规则,并放行对相应端口(例如SSH协议默认的22端口)的访问。
    网络类型 规则方向 授权策略 端口范围 优先级 授权对象
    专有网络VPC 入方向 允许 SSH(22) 1 0.0.0.0/0
    经典网络 公网入方向


在Windows环境中使用密钥对

本节以PuTTYgen为例介绍如何将私钥文件格式从.pem转换为.ppk,并以PuTTY为例介绍如何使用密钥对连接Linux实例。

  1. 下载并安装PuTTYgen和PuTTY。
    下载链接如下:
    • 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 地址,例如root@10.10.xx.xxx。
    3. Port中输入端口号22
    4. 选择Connection typeSSH
  6. 单击Open
    当出现以下提示时,说明您已经成功地使用SSH密钥对登录了实例。windows_putty_5
以下示例演示如何转换私钥文件格式和使用SSH密钥连接Linux实例。使用ssh密钥登录



在支持SSH命令的环境中使用密钥对(通过命令配置信息)

本节介绍如何在支持SSH命令的环境(例如Linux、Windows下的MobaXterm)中通过命令配置所需信息,并通过SSH命令登录Linux实例。

  1. 找到.pem私钥文件在本地机上的存储路径,例如~/.ssh/ecs.pem
    此处路径和文件名称仅为示例,在后续命令中请根据实际情况修改。
  2. 运行以下命令修改私钥文件的属性。
    chmod 400 [.pem私钥文件在本地机上的存储路径]
    示例如下:
    chmod 400 ~/.ssh/ecs.pem
  3. 运行以下命令连接至实例。
    ssh -i [.pem私钥文件在本地机上的存储路径] root@[公网IP地址]
    示例如下:
    ssh -i ~/.ssh/ecs.pem root@10.10.xx.xxx



在支持SSH命令的环境中使用密钥对(通过config文件配置信息)

本节介绍如何在支持SSH命令的环境(例如Linux、Windows下的MobaXterm)中通过命令配置所需信息,并通过SSH命令登录Linux实例。

  1. 找到.pem私钥文件在本地机上的存储路径,例如~/.ssh/ecs.pem
    此处路径和文件名称仅为示例,在后续命令中请根据实际情况修改。
  2. 运行以下命令修改私钥文件的属性。
    chmod 400 [.pem私钥文件在本地机上的存储路径]
    示例如下:
    chmod 400 ~/.ssh/ecs.pem
  3. 运行以下命令,进入用户主目录下的.ssh目录,并创建config文件。
    cd ~/.ssh
    vim config
  4. 在config配置文件内,按i进入编辑模式,添加如下配置项。
    # 输入ECS实例的别名,用户SSH远程连接。 Host ecs # 输入ECS实例的公网IP地址。 HostName 121.196.**.** # 输入端口号,默认为22。 Port 22 # 输入登录账号。 User root # 输入.pem私钥文件在本机的地址。 IdentityFile ~/.ssh/ecs.pem
    如果您有多台ECS实例,也可以通过config配置文件,统一进行免密登录的配置。配置两台ECS实例的示例内容如下:
    # 输入ECS实例的别名,用户SSH远程连接。 Host ecs1 # 输入ECS实例的公网IP地址。 HostName 121.196.**.** # 输入端口号,默认为22。 Port 22 # 输入登录账号。 User root # 输入.pem私钥文件在本机的地址。 IdentityFile ~/.ssh/ecs.pem # 输入ECS实例的别名,用户SSH远程连接。 Host ecs2 # 输入ECS实例的公网IP地址。 HostName 121.196.**.** # 输入端口号,默认为22。 Port 22 # 输入登录账号。 User root # 输入.pem私钥文件在本机的地址。 IdentityFile ~/.ssh/ecs.pem

    添加完成后,按Esc键,并输入:wq保存config文件。

  5. 运行以下命令,重启SSH服务。
    service sshd restart
  6. 运行命令连接至实例。
    ssh [ECS实例的别名]
    示例如下:
    ssh ecs



如果您有其他问题,可以联系北京志远天成阿里云代理商,为您提供一对一专业全面的技术服务,同时新老阿里云会员,均可享受我公司代理商价格,欢迎咨询欢迎咨询.gif