采用密钥方式登录Linux服务器
最近刚刚开了一个VPS,查看内存占用的时候,发现有很多sshd进程占用了大量内存和CPU资源,一搜才意识到问题的严重性。互联网上有大量骇客进行扫描行为,采用密码登录方式的话,简单密码会在不久后被扫描工具字典破解;如果被针对性攻击的话,位数短的密码也很快就会被密码爆破的方式暴力破解,不说服务器沦为肉鸡,密码也会被加入到字典中广为流传,如果其他服务器也采用相同密码,那就很容易在扫肉鸡的过程中全部沦陷。
可以通过加长密码长度、改变ssh端口的方式,来提升被破解的难度;不同服务器使用不同密码,来避免一旦失陷,自己的常用密码会成为字典中的一员。但是密码长度过长、个数过多, 会增加记忆难度,建议就是采用密钥方式来登录服务器。
一、密钥登录机制
这里使用的是RSA加密算法,RSA是基于密钥对的对称加密算法,公钥加密的内容只能用私钥解开,反之亦然。密钥方式登录,就是服务端保存公钥,客户端保存私钥,在登录的时候,服务器用公钥加密一段随机内容发给客户端,客户端用私钥解出后,再发给服务器,服务器验证解出的内容是否正确,正确即密钥验证通过。
密钥登录方式,可以和密码登录方式同时使用,先验证了密钥,再验证账号密码,不冲突。
密钥登录方式,多个密钥可以关联同一个账号,这样多个人需要使用同一个账号的时候,可以给他们分发不同的密钥,如果要停止某人的使用权限,只需要在服务器上删除对应的公钥就可以了。
二、密钥生成
密钥对可以在任意设备上生成,不过最方便的还是在被登录的服务器上生成,这样会生成密钥的时候就可以省略账号和服务器信息了。输入以下命令生成一个RSA密钥对
ssh-keygen -t rsa -b 3072</