0%

服务器禁止root登录和使用RSA证书登录

今天查看了一下服务器的ssh日志(/var/log/secure),发现....

someone-want-to-enurmate-my-password

有人在枚举我的root密码!于是....博主必须要防止这种情况的发生! There-are-bad-people-wan-to-hurt-me

创建新用户

打开终端,用root连接到服务器,依次输入如下的命令

  • group add test
  • useradd abc
  • passwd abc
  • usermod -a -G test abc

在上面的命令中,我们创建了一个test的用户组和一个叫abc的用户,并设置了密码,将abc用户添加到test组里面

接着输入:

  • visudo

visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。

  • root ALL=(ALL:ALL) ALL

在这一行的下面,再添加一行。

  • abc ALL=(ALL:ALL) ALL

打开新的终端,用刚才的账户登录看看是否成功

禁止root登录

在配置文件(/etc/ssh/sshd_config )中,将SSH的默认端口22改掉(可以改成从1025到65536之间的任意一个整数)

  • vim /etc/ssh/sshd_config
  • Port 1234

禁止root登录

  • PermitRootLogin no

禁止空密码

  • PermitEmptyPasswords no

添加允许登录的用户名(在最后加上)

  • AllowUsers abc

重启ssh服务

  • sudo service sshd restart

来试试吧开一个新的终端,root现在是登录不了的了

公私钥认证

如果没有公钥和私钥的话,就生成一个(路径默认,不设置密码,当然也可以设置)

  • ssh-keygen -t rsa -b 4096

上面的语句生成两个文件,一个id_rsa.pub一个id_rsa,前者是公钥后者是私钥

用刚才的abc登录服务器,上传公钥(id_rsa.pub)到服务器到当前用户根目录下(/home/abc/),

然后

  • cd /home/abc/ (或者cd ~)

新建文件夹

  • mkdir .ssh

添加公钥到.ssh/authorized_keys中

  • cat id_rsa.pub >> .ssh/authorized_keys

设置权限

  • sudo chmod 0700 ~/.ssh/
  • sudo chmod 0600 ~/.ssh/authorized_keys

保险起见,删除公钥

  • rm ~/id_rsa.pub

接着修改ssh配置文件,开启如下内容

  • RSAAuthentication yes
  • PubkeyAuthentication yes
  • AuthorizedKeysFile      .ssh/authorized_keys

然后禁止password方式登录

  • PasswordAuthentication no

重起ssh服务,试试效果吧可以免密码直接登录啦(原来的终端先别关掉,不然失败了就完蛋啦

  • ssh address -p 1234

 

小结

前面的步骤中,我们更改了ssh端口,并且禁止了root登录。

接着提出了禁止密码登录,采用更安全的RSA验证方式

使用RSA来验证,如果对方有 实力暴力破解也不会来破解你的- -还不如去找银行呢

还有木有刁民→_→ 哈哈哈

请我喝杯咖啡吧~