前段时间阿里云的服务器的用户密码被人暴力破解,后来才想起来是自己随便建的用户,密码是弱口令,虚拟机用习惯了。。。虽然已经过去了好些天了,当时也查了查提高服务器安全性的方法,感觉把ssh的用户密码登陆换成密钥登入,然后关闭密码登入不错,最近也总算有兴趣再搞一搞密钥登入。
ssh密钥登入使用的是非对称密钥,非对称密钥一个公钥、一个私钥.所谓公钥登录,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
- 在~/.ssh下有authorized_keys验证登入,每个用户单独设置
- 生成密钥对命令:ssh-keygen
- 可以再设置密码,也可以不用密码
- 最后生成一对密钥,
- 使用scp id_rsa.pub(你的公钥) authorized_keys 将你的公钥注入到keys中
- 修改/etc/ssh/sshd_config使支持密钥登入(是sshd_config,不是ssh_config)
- RSAAuthentication yes(支持rsa密钥登入)
- PasswordAuthentication no(关闭密码登入)
- 当然也可以将PermitRootLogin no(禁止root用户登入)来提高安全性
- 修改完配置文件后只需要重启下服务:service sshd restart即可生效