本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
阿里云SSH密钥对是一种安全便捷的登录认证方式,用于在SSH协议中进行身份验证和加密通信。由公钥和私钥组成且仅支持Linux实例,满足您对更高安全性、便利性和自动化能力的业务需求。您可以直接在Windows环境和支持SSH命令的环境(例如Linux环境、Windows下的MobaXterm)中使用SSH密钥对连接Linux实例。
前提条件
连接Linux实例
根据本地设备不同的环境,您可以通过不同的方式使用密钥远程连接Linux实例。
在Windows环境中使用密钥对
本节以PuTTYgen为例介绍如何将私钥文件格式从.pem转换为.ppk,并以PuTTY为例介绍如何使用密钥对连接Linux实例。
下载并安装PuTTYgen和PuTTY。
将.pem私钥文件转换为.ppk私钥文件。
启动PuTTYgen。
本示例中的PuTTYgen版本为0.71。
选择Type of key to generate为RSA,然后单击Load。
选择All Files(*.*)。
选择待转换的.pem私钥文件。
在弹出的对话框中,单击确定。
单击Save private key。
在弹出的对话框中,单击是。
指定.ppk私钥文件的名称,然后单击保存。
启动PuTTY。
配置用于身份验证的私钥文件。
选择 。
在Private key file for authentication:区域,单击Browse…。
选择转换好的.ppk私钥文件。
配置连接Linux实例所需的信息。
单击Session。
在Host Name (or IP address)中输入登录账号和实例公网IP地址。
格式为username@IP 地址,例如ecs-user@10.10.xx.xxx。
在Port中输入端口号22。
选择Connection type为SSH。
单击Open。
当出现以下提示时,说明您已经成功地使用SSH密钥对登录了实例。
以下示例演示如何转换私钥文件格式和使用SSH密钥连接Linux实例。
在支持SSH命令的环境中使用密钥对(通过命令配置信息)
本节介绍如何在支持SSH命令的环境(例如Linux、Windows下的MobaXterm)中通过命令配置所需信息,并通过SSH命令登录Linux实例。
找到.pem私钥文件在本地机上的存储路径,例如~/.ssh/ecs.pem。
此处路径和文件名称仅为示例,在后续命令中请根据实际情况修改。
运行以下命令修改私钥文件的属性。
chmod 400 [.pem私钥文件在本地机上的存储路径]
示例如下:
chmod 400 ~/.ssh/ecs.pem
运行以下命令连接至实例。
ssh -i [.pem私钥文件在本地机上的存储路径] username@[公网IP地址]
示例如下:
ssh -i ~/.ssh/ecs.pem ecs-user@10.10.xx.xxx
在支持SSH命令的环境中使用密钥对(通过config文件配置信息)
本节介绍如何在支持SSH命令的环境(例如Linux、Windows下的MobaXterm)中通过命令配置所需信息,并通过SSH命令登录Linux实例。
找到.pem私钥文件在本地机上的存储路径,例如~/.ssh/ecs.pem。
此处路径和文件名称仅为示例,在后续命令中请根据实际情况修改。
运行以下命令修改私钥文件的属性。
chmod 400 [.pem私钥文件在本地机上的存储路径]
示例如下:
chmod 400 ~/.ssh/ecs.pem
运行以下命令,进入用户主目录下的.ssh目录,并创建config文件。
cd ~/.ssh vim config
在
config
配置文件内,按i进入编辑模式,添加如下配置项。配置一台ECS实例的示例内容如下:
# 输入ECS实例的别名,用户SSH远程连接。 Host ecs # 输入ECS实例的公网IP地址。 HostName 121.196.**.** # 输入端口号,默认为22。 Port 22 # 输入登录账号。 User ecs-user # 输入.pem私钥文件在本机的地址。 IdentityFile ~/.ssh/ecs.pem
配置两台ECS实例的示例内容如下:
# 输入ECS实例的别名,用户SSH远程连接。 Host ecs1 # 输入ECS实例的公网IP地址。 HostName 121.196.**.** # 输入端口号,默认为22。 Port 22 # 输入登录账号。 User ecs-user # 输入.pem私钥文件在本机的地址。 IdentityFile ~/.ssh/ecs.pem # 输入ECS实例的别名,用户SSH远程连接。 Host ecs2 # 输入ECS实例的公网IP地址。 HostName 121.196.**.** # 输入端口号,默认为22。 Port 22 # 输入登录账号。 User ecs-user # 输入.pem私钥文件在本机的地址。 IdentityFile ~/.ssh/ecs.pem
添加完成后,按Esc键,并输入
:wq
保存config文件。运行以下命令,重启SSH服务。
警告若重启SSH服务失败,会存在SSH服务不可用风险,可能导致业务中断,建议您在非业务高峰期时执行该操作。
service sshd restart
运行命令连接至实例。
ssh [ECS实例的别名]
示例如下:
ssh ecs
常见问题
无法连接实例时,您可以自行排查。更多信息,请参见远程连接FAQ和GuestOS常见问题与修复方案。
相关文档
如果您需要使用在Linux实例上自建的用户通过SSH密钥对登录实例,则您需要将~/.ssh/authorized_keys文件拷贝到该用户的.ssh目录下,才能登录Linux实例。具体操作,请参见自建用户通过SSH密钥对登录Linux实例。
不支持在控制台为Windows实例绑定SSH密钥对,如需通过密钥认证登录Windows实例,您可以自行在实例内部开启SSHD的远程服务并配置密钥。具体操作,请参见通过密码或密钥认证登录Windows实例。
如果您在绑定密钥对后希望使用密码方式登录实例,只需重置实例密码即可。重置密码后,您既可以使用密钥对方式,也可以使用密码方式登录实例。具体操作,请参见重置实例登录密码。
如果您不想在本地使用SSH密钥对登录Linux实例,则您可以在ECS控制台上通过Workbench来登录Linux实例。具体操作,请参见通过密码或密钥认证登录Linux实例。