阿里云SSH密钥对是一种安全便捷的登录认证方式,用于在SSH协议中进行身份验证和加密通信。由公钥和私钥组成且仅支持Linux实例,满足您对更高安全性、便利性和自动化能力的业务需求。通过SSH密钥对,您可以实现免密码远程登录,并在无需人工干预的情况下进行安全的自动化操作,实现服务器配置和应用程序部署的自动化。
SSH密钥对介绍
SSH密钥对通过加密算法生成一对密钥,默认采用RSA 2048位的加密方式。要使用SSH密钥对登录Linux实例,您必须先创建一个密钥对,并在创建实例时指定密钥对或者创建实例后绑定密钥对,然后使用私钥连接实例。
成功创建SSH密钥对后:
阿里云会保存SSH密钥对的公钥部分。在Linux实例中,公钥内容放在~/.ssh/authorized_keys文件中。
您需要下载并妥善保管私钥。私钥使用未加密的PEM(Privacy-Enhanced Mail)编码的
PKCS#8
格式。
功能优势
相较于用户名和密码认证方式,使用SSH密钥对认证方式有以下优势:
安全性:使用SSH密钥对登录认证更为安全可靠。
SSH密钥对安全强度远高于常规用户口令,可以杜绝暴力破解威胁。
无法通过公钥推导出私钥。
便捷性:
如果您将公钥配置在Linux实例中,那么,在本地或者另外一台实例中,您可以无需输入密码,直接使用私钥通过SSH命令或相关工具登录目标实例。
支持远程登录大量Linux实例,更加方便地管理您的实例。如果您需要批量维护多台Linux实例,推荐使用这种方式登录。
使用限制
使用SSH密钥对有如下限制:
仅支持Linux实例。
支持使用创建Linux实例时设置的登录用户root或ecs-user(部分镜像暂不支持ecs-user,具体以实例购买页面为准)通过SSH密钥对登录实例。具体操作,请参见通过密码或密钥认证登录Linux实例或通过密钥认证登录Linux实例。
如果您需要使用在Linux实例上自建的用户通过SSH密钥对登录实例,则您需要将~/.ssh/authorized_keys文件拷贝到该用户的.ssh目录下,才能登录Linux实例。具体操作,请参见自建用户通过SSH密钥对登录Linux实例。
如果使用SSH密钥对登录Linux实例,将会禁用密码登录,以提高安全性。
目前,ECS只支持创建2048位的RSA密钥对。
一个阿里云账号在一个地域最多可以拥有500个密钥对。
通过控制台绑定密钥对时,一台Linux实例只能绑定一个密钥对。
如果您的实例已绑定密钥对,则绑定的新密钥对会替换已有的旧密钥对。
如果您需要使用多个密钥对登录实例,则可以在实例内部手动修改~/.ssh/authorized_keys文件,添加多个密钥对,具体操作,请参见添加或替换密钥对。
已停售的实例规格无法使用SSH密钥对。更多信息,请参见已停售的实例规格。
基于数据安全考虑,在实例状态为运行中(
Running
)时绑定或解绑密钥对,您需要重启实例使操作生效。
生成方式
SSH密钥对的生成方式包括:
由ECS生成,默认采用RSA 2048位的加密方式。具体操作,请参见创建SSH密钥对。
重要如果您的密钥对由ECS生成,那么在首次生成密钥对时,请务必下载并妥善保存私钥。当该密钥对绑定某台实例时,如果没有私钥,您将无法登录实例。
由您采用SSH密钥对生成器生成后再导入ECS,导入的密钥对必须支持以下任意一种加密方式:
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