为ECS设置ssh密钥登录的方法
最近,租用的腾讯云服务器ECS中招了,来自伦敦IDC的黑客通过ssh访问暴力破解root密码,并种上了木马(估计是挖矿的),看来必须重视安全加固工作了。
ECS开放了80和443端口提供http和https服务,维护用的ssh端口22也是必须的。虽然可以为root设置更加复杂的密码,但也是给自己找麻烦,想来想去,最好还是取消ssh的密码登录方式,改为密钥登录方式,具体的操作步骤如下:
在腾讯云上,配置ECS采用ssh密钥登录方式
登录腾讯云,并转到ECS控制台。注意:为保障安全,ECS在关机状态才能修改登录方式!
选择
SSH密钥-创建密钥,在弹出式窗口中选择创建新密钥对,并按提示进行操作。弹窗中的
使用已有公钥按钮,其功能是:导入用户自己手工产生的公钥文件
根据提示信息下载私钥文件,注意自行妥善保存。默认文件后缀名为.dms,可以改为.txt。
将新生成的密钥对与需要的ECS进行绑定。绑定ECS成功后,ECS就不再支持密码登录了
屏幕显示的公钥内容ssa-rsa,其实就是ECS服务器上
$HOME/.ssh/authorized_keys的内容
调用方法1:在MAC上,用Terminal的命令行登录(需要指定密钥文件)
基本步骤是:
Mac OS 用户请打开系统自带的终端(Terminal)并输入以下命令,赋予私钥文件仅本人可读权限(必须设置!)。
1
chmod 400 $HOME/Downloads/TENCENT_ECS.txt
在Terminal窗口中执行以下命令,进行远程登录。
1
ssh -i $HOME/Downloads/TENCENT_ECS.txt root@119.22.33.44
调用方法2:更简单的,Terminal无密码直接登录
在ssh指定密钥文件的基础上,还可以将ssh进一步简化为不需要指定密钥文件的信任方式,具体步骤如下:
在mac终端生成公钥文件
id_rsa.pub和私钥文件id_rsa。1
ssh-keygen -t rsa
图中红色标识的是是否对公钥和私钥进行对称加密,如果你输入了的话,那么在后续利用私钥登录的时候,需要输入该密码对私钥进行解密。如果安全性要求不高,可以不输入,直接点击enter跳过。
在ECS服务器上寻找文件
$HOME/.ssh/authorized_keys编辑该文件,添加
id_rsa.pub里面的公钥数据。修改该文件的权限为644
1
chmod 644 $HOME/.ssh/authorized_keys
现在MAC终端上可免密登录你的Linux服务器了,登录命令:
1
ssh root@119.22.33.44
或者,你也可以在
Terminal的菜单上直接选择选择远程连接,而不需要先打开本地的字符终端了- 实际上,这就是腾讯云配置
使用已有公钥的原理:首先在Client生成一对私钥和公钥,然后并将公钥内容加入到Server的authorized_keys文件中,使得其成为可信任的Client,这也是Github上代码自动化加载用户自定义运行环境配置的通用方法。 - 注意:方法1需要在ssh命令行中指定私钥文件,而方法2不要指定私钥文件的原因是,Terminal自动调用Client的默认存储文件
$HOME/.ssh/id_rsa,但前提是密钥是在这个Client生成的,如果其他client想要调用就需要自己去配置Server的公钥文件了。
- 实际上,这就是腾讯云配置