使用SSH Keys认证进行服务器登陆 - 服务器安全设定必选

本次服务器安全讨论设定仅限于vps和独立服务器,虚拟主机不在讨论此列。

除了网站代码漏洞之外,很多时候,服务器被hack取得root权限原因之一,是因为你的root权限密码设定被暴力破解了。总有些不要脸的人,每天在网路上使用自带代理记起到处扫描肉鸡。不信?你看一下你的/var/log/secure 的log信息。

这里讲一下,如何使用ssh 密钥匙进行登入服务器,而不是仅仅使用root密码。

步骤:

  1. 本地生成ssh keys:
    命令:ssh-keygen -b 4096

    注意:生成改密钥匙的时候,会提示你是否要为该密钥匙加一个密码?
    可选直接回车(不加密码);
    也可选择加一个密码----- 如果为密钥匙加了密码,务必记住,因为以后使用密钥匙登入任何一个关联的服务器,都需要输入这个加密密钥匙的密码(不是root的密码!!只是密钥匙的密码,证明密钥匙是你制作的!)


     
  2. 将生成的id_rsa拷贝一份命名为:authorized_keys 并上传到你的远程服务器的/root/.ssh目录下,即:/root/.ssh/authorized_keys
  3. 修改设定/root/.ssh/authorized_keys文件的权限为600 -----------非常重要!!---很多国内csdn上抄来抄去的文章都没有写这个设定;
  4. 修改远程服务器端/etc/ssh/sshd_config 当中的语句:由原来的 PermitEmptyPasswords yes
    修改为: PermitEmptyPasswords no
    意思就是,不再允许使用密码登入

     
  5. done!

如此,以后登入服务器(当然这个服务器你都按照以上2,3,4这三步设定好了),就不再需要root密码了;这种登入服务器的方式非常安全,除非别人得到了你的密钥匙,否则他无法通过暴力猜测root密码来登入到你的服务器。

最后:提醒一句,本地产生的密钥匙最好备份到一个安全的地方,这样防止你本地电脑系统重装后的密钥匙丢失,丢失了密钥匙之后,那么与之关联的服务器的密钥匙就需要你重新更新...

分类: