文章目录
阿里云服务配置SSH密钥对登陆
前言
最近发现自己的ECS服务实例存在不少SSH攻击事件,所幸自己的密码足够健壮避免了被暴力破解。
对于弱口令而言暴力破解轻而易举,因此研究了一下阿里云提供的密钥对登陆方式,以此来避免SSH暴力攻击。
SSH密钥对概述
阿里云SSH密钥对是一种安全便捷的登录认证方式,由公钥和私钥组成,仅支持Linux实例
。
SSH密钥对介绍
SSH密钥对通过加密算法生成一对密钥,默认采用RSA 2048位的加密方式。要使用SSH密钥对登录Linux实例,您必须先创建一个密钥对,并在创建实例时指定密钥对或者创建实例后绑定密钥对,然后使用私钥连接实例。
成功创建SSH密钥对后:
- 阿里云会保存SSH密钥对的公钥部分。在Linux实例中,公钥内容放在
~/.ssh/authorized_keys
文件内。 - 您需要下载并妥善保管私钥。私钥使用未加密的PEM(Privacy-Enhanced Mail)编码的
PKCS#8
格式。
功能优势
相较于用户名和密码认证方式,SSH密钥对有以下优势:
- 安全性:SSH密钥对登录认证更为安全可靠。
- 密钥对安全强度远高于常规用户口令,可以杜绝暴力破解威胁。
- 不可能通过公钥推导出私钥。
- 便捷性:
- 如果您将公钥配置在Linux实例中,那么,在本地或者另外一台实例中,您可以使用私钥通过SSH命令或相关工具登录目标实例,而不需要输入密码。
- 便于远程登录大量Linux实例,方便管理。如果您需要批量维护多台Linux实例,推荐使用这种方式登录。
使用限制
使用SSH密钥对有如下限制:
- 如果使用SSH密钥对登录Linux实例,将会禁用密码登录,以提高安全性。
- 仅支持Linux实例。
- 目前,ECS只支持创建2048位的RSA密钥对。
- 一个云账号在一个地域最多可以拥有500个密钥对。
- 一台Linux实例只能绑定一个SSH密钥对。如果您的实例已绑定密钥对,绑定新的密钥对会替换原来的密钥对。
- 已停售的实例规格无法使用SSH密钥对。详情请参见已停售的实例规格。
- 基于数据安全考虑,在实例状态为运行中(Running)时绑定或者解绑密钥对,您需要
重启实例
使操作生效。
以上来自官网的概述,接来下我们按照流程创建密钥对并用其登陆实例
1 登陆云服务控制台
登陆阿里云平台——>云服务器——>密钥对
2 创建密钥对下载私钥
创建密钥对后下载私钥(*.pem)并保存
也可以通过导入已有的公钥实现添加。
3 绑定ECS实例
进入密钥对管理列表选择密钥对,点击绑定密钥对将ECS实例与密钥对绑定。
4 修改私钥文件属性
进入本机私钥文件目录执行命令修改私钥文件属性
chmod 400 [.pem私钥文件在本地机上的存储路径]
5 运行命令连接实例
通过执行如下命令连接远程服务实例
ssh -i [.pem私钥文件在本地机上的存储路径] root@[公网IP地址]
6 简化连接命令
步骤5中登陆远程服务需要输入很长一段命令,接来下我们通过配置本地config文件来简化登陆命令。
进入本地机器~/.ssh
目录下打开config
文件添加如下配置
#ECS服务器实例名称(ssh登陆时使用可自定义,最好与ECS实例名称一致)
Host zcmain
#ECS服务器公网ip
HostName xxx.xxx.xxx.xxx
#端口号,默认22
Port 22
#登陆账号
User root
#服务器密钥队中私钥在本机的路径(具体路径根据实际存放位置填写)
IdentityFile ~/.ssh/alilogin.pem
7 简化后命令的登陆
#配置完本机config之后,直接使用 ssh Host 回车即可登陆服务
ssh zcmain
登陆成功