使用SSH密钥对
文提供了在ECS控制台上使用SSH密钥对的操作指示。SSH密钥对仅支持Linux实例。
1. 创建SSH密钥对
- 登录ECS管理控制台。
- 在左侧导航栏,选择网络与安全 > 密钥对。
- 在顶部状态栏处,选择地域。
- 单击创建密钥对。
- 设置密钥对名称,并选择自动新建密钥对。
说明 密钥对名称不能重复。否则,控制台会提示密钥对已存在。 - 单击确定创建密钥对。
创建密钥对后,请务必下载并妥善保管私钥。使用密钥对绑定ECS实例后,如果没有私钥,您将无法登录该ECS实例。
一个账号在一个地域最多可以拥有500个密钥对。
- 登录ECS管理控制台。
- 在左侧导航栏,选择网络与安全 > 密钥对。
- 在顶部状态栏处,选择地域。
- 找到需要操作的密钥对,在操作列中,单击绑定密钥对。
- 在选择ECS实例栏中,选中需要绑定该密钥对的ECS实例名称,单击>,移入已选择栏中。说明 如果选择ECS实例栏中的ECS实例名称显示为灰色,表示该实例为Windows实例,不支持SSH密钥对。
- 单击确定。说明 如果ECS实例处于运行中(Running)状态,绑定SSH密钥对后,您必须在控制台或者使用API重启实例,才能使操作生效。
ECS实例绑定SSH密钥对后,您就可以通过SSH密钥对登录ECS实例。
相关API:AttachKeyPair
解绑SSH密钥对
- 登录ECS管理控制台。
- 在左侧导航栏,选择网络与安全 > 密钥对。
- 在顶部状态栏处,选择地域。
- 找到需要操作的密钥对,在操作列中,单击解绑密钥对。
- 在选择ECS实例栏中,选中需要解绑的ECS实例名称,单击>,移入已选择栏中。
- 单击确定。说明
- 如果ECS实例处于运行中(Running)状态,解绑SSH密钥对后,您必须在控制台或者使用API重启实例,才能使操作生效。
- 如果在解绑密钥对之前已经重置了实例密码,则解绑密钥对之后可以使用密码方式登录。如果解绑密钥对之前没有重置实例密码,则解绑密钥对之后,必须重置实例密码才能使用密码方式登录实例。
查看公钥信息
本地为Windows操作系统
- 启动PuTTYgen。
- 单击Load。
- 选择.ppk或.pem文件。PuTTYgen会显示公钥信息。
下面是windows 秘钥登录过程:
目前阿里云服务器生成的秘钥对是后缀名为xxxx.pem的文件。然后使用putty登录。选择加载私钥的时候。不能识别xxx.pem的文件,需要使用puttygen.exe这个软件来生成后缀为xxxx.ppk的文件。

点击load把。pem文件加载进来 .
点击save private key,把一个.ppk的文件保存 下来,名字随便取, 然后再使用putty来登录加载、
打开putty——左边框中Connection——SSH——Auth 点击Browse 把我们刚才新建的.ppk文件导入点击OPEN就打开了 。

这个时候,登录服务器只需要root 账户和私钥即可登录服务器。
本地为Linux或Mac系统运行ssh-keygen命令,并指定.pem文件的路径。
ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem
返回公钥信息,类似如下所示:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdlrdZwV3+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIP6t0Mk5aPkK/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcV14uAy0yV6/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjGACGcXclex+lHtTGiAIRG1riyNRVC47ZEVCxxxxxx
说明 如果该命令失败,请运行chmod 400 my-key-pair.pem
命令更改权限,确保只有您才能查看该文件。
在实例内部查看
公钥内容放在~/.ssh/authorized_keys
文件内。在实例内打开该文件,则返回公钥信息。
导入SSH密钥对
除了新建密钥对之外,您也可以使用工具生成SSH密钥对并将公钥导入阿里云。说明 不要导入私钥。请您妥善保存私钥。导入阿里云的公钥必须使用Base64
编码,且必须支持下列加密方式中的一种:
- 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
- 获取公钥信息。详细步骤,请参见查看公钥信息。
- 登录ECS管理控制台。
- 在左侧导航栏,选择网络与安全 > 密钥对。
- 在顶部状态栏处,选择地域。
- 单击创建密钥对。
- 设置密钥对名称,选择导入已有密钥对,并在公钥内容中输入公钥信息。说明 指定的名称不应该与已有的密钥对名称重复,也不应该与删除前仍绑定实例的密钥对名称重复,否则,控制台会提示密钥对已存在。
- 单击确定。
相关API:ImportKeyPair
绑定SSH密钥对
您可以在创建实例时指定SSH密钥对,也可以在创建实例后绑定SSH密钥对。说明
- 一台ECS实例只能绑定一个SSH密钥对。如果ECS实例已经绑定了SSH密钥对,绑定新密钥对后,新密钥自动替换原有的密钥。
- 如果ECS实例使用密码认证,绑定密钥对后,密码验证方式自动失效。但如果在绑定密钥对之后重置实例密码,除使用密钥对方式之外,您也可以使用密码方式登录实例。
相关API:DetachKeyPair
解绑SSH密钥对
- 登录ECS管理控制台。
- 在左侧导航栏,选择网络与安全 > 密钥对。
- 在顶部状态栏处,选择地域。
- 找到需要操作的密钥对,在操作列中,单击解绑密钥对。
- 在选择ECS实例栏中,选中需要解绑的ECS实例名称,单击>,移入已选择栏中。
- 单击确定。说明
- 如果ECS实例处于运行中(Running)状态,解绑SSH密钥对后,您必须在控制台或者使用API重启实例,才能使操作生效。
- 如果在解绑密钥对之前已经重置了实例密码,则解绑密钥对之后可以使用密码方式登录。如果解绑密钥对之前没有重置实例密码,则解绑密钥对之后,必须重置实例密码才能使用密码方式登录实例。
相关API:DetachKeyPair
在实例内添加或替换密钥对
您可以在实例内添加多个密钥对,允许多个密钥对访问该实例。您也可以替换现有的密钥对。
- 获取新密钥对的公钥信息。详细步骤,请参见查看公钥信息。
- 使用现有的密钥对连接ECS实例。
- 运行vim .ssh/authorized_keys命令打开文件。
- 添加或者替换公钥信息。
- 添加公钥信息:在现有的公钥信息下方添加新的公钥信息,并保存。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCys3aOkFm1Xh8iN0lijeQF5mz9Iw/FV/bUUduZjauiJa1KQJSF4+czKtqMAv38QEspiWStkSfpTn1g9qeUhfKd4uWlmxeQ+XjPsf22fRem+v7MHMa7KnZWiHJxO62D4Ihvv2hKfskz8K44mVMeInMjGO+u17IaL2l2ri8q9YdvVHt0Mw5TpCkERWGoBPE1Y8vxFb97TaE5+zc+2+eff6PDCMkVTP+c/feMeCxpx6Lhc2NEpHIPxMpjOv1IytKiDfWcezA2aCmKre0Q2t/YudCmJ8HTCnLId5LpirbNE4X08Bk7tXZAU8UaoeDdUr/FKB1Cxw1TbGMTfWBcdWkdp2lv imported-openssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdlrdZwV3+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIP6t0Mk5aPkK/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcV14uAy0yV6/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjGACGcXclex+lHtTGiAIRG1riyNRVC47ZEVCg9iTWWGrWFvVlnI0E3Deb/9H9mPCO1Xt2fxxxxxxxxBtmR imported-openssh-key
- 替换公钥信息:删除现有的公钥信息,添加新的公钥信息,并保存。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDdlrdZwV3+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIP6t0Mk5aPkK/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcV14uAy0yV6/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjGACGcXclex+lHtTGiAIRG1riyNRVC47ZEVCg9iTWWGrWFvVlnI0E3Deb/9H9mPCO1Xt2fxxxxxxxxBtmR imported-openssh-key
如果能够使用新的私钥登录ECS实例,表示添加或者替换密钥对成功。
- 添加公钥信息:在现有的公钥信息下方添加新的公钥信息,并保存。
删除SSH密钥对
删除SSH密钥对后不可恢复,但是正在使用该密钥对的实例不受影响,实例信息中仍然会显示被删除的密钥对名称。说明
- 如果您的密钥对已经绑定实例,而且在删除前未解绑实例,删除后,您将不能再用相同的名称创建密钥对。否则,创建或导入密钥对时,输入这个名称,控制台会报错密钥对已存在。
- 如果您的密钥对在删除前未绑定实例或者已经解绑实例,删除后,您仍可以使用相同的名称创建密钥对。
- 登录ECS管理控制台。
- 在左侧导航栏,选择网络与安全 > 密钥对。
- 在顶部状态栏处,选择地域。
- 选中一个或多个需要删除的密钥对。
- 单击删除。
相关API:DeleteKeyPairs
本文参考链接:
https://help.aliyun.com/document_detail/51793.html?spm=a2c4g.11186623.6.856.435411c8di7WcD