VPS安全之禁用root SSH登录

来源:互联网 发布:淘宝商品购物车加不了 编辑:程序博客网 时间:2024/05/21 10:52

       这篇文章主要讲述为新的用户使用SSH keys登录并禁用root登录。网上很多教程都是只提到如何新建用户,而我因为之前为root账户配置过SSH keys,而且新手,简单创建新用户之后使用新用户名登录一直显示Permission denied (publickey),后来猛然意识到应该在新用户里也配置SSH keys才可以,然后不断进行尝试终于成功。下面仔细实现相关步骤:

       1.创建一个新用户

            以root身份先登录VPS,然后通过下面的命令添加新用户,下文所有的your_name为你的自定义名称:


         adduser your_name
      
         系统将为你自动创建用户名以及/home/your_name/,可使用下面的命令查看相关创建信息:

      

          ls -lad /home/your_name/

        2.为新创建的用户设定密码

         设定密码的命令如下,将会提示输入两遍密码:

   

       passwd your_name

        

         3.为新用户赋予sudo权限

                安装sudo工具:

        apt-get install sudo

                打开/etc/sudoers文件: vim /etc/sudoers

         找到root   ALL=(ALL:ALL) ALL这一行,然后在下面添加:

        

         your_name  ALL=(ALL:ALL) ALL

                保存文件后退出。

        

         我们先测试一下新用户是否可以登录,为了保证安全性,之前不要把PermitRootLogin设置成no,使用如下命令验证新用户登录情况:

       

     ssh -v your_name@your_ip -p your_port

       

           会显示详细登录握手信息,最后会验证失败因为Permission denied (publickey)。这是因为没有为新建用户设置SSH keys,而且也禁用了密码登录,所以会登录失败,接下来配置新用户SSH key。

        4.为新用户SSH登录设置SSH keys

        我们采用和root用户相同的密匙以及相同的导入方法,使用如下命令导入到新建用户中:

       

       cat ~/.ssh/id_rsa.pub | ssh root@you_ip -p your_port  "mkdir -p /home/your_name/.ssh && cat >>  /home/your_name/.ssh/authorized_keys"

         稍微解释一下上面这句话,~/.ssh/id_rsa.pub 是本地密匙所在文件夹,可自行查看修改;通过root账户进入vps,并在/home/your_name/下创建了一个.ssh文件夹,然后将密匙共本地导入到服务器的文件夹中。实际使用时请自行替换相关your_**内容,这样就能实现导入密匙到新建用户中。但还有非常重要的一步要做,缺少这一步,依然会登录失败。

         为服务器中的密匙文件夹及文件赋予合适的权限:

     

           sudo chmod 700 /home/your_name/.ssh/          sudo chmod 600 /home/your_name/.ssh/*          sudo chown -R User /home/your_name/.ssh/          sudo chgrp -R User /home/your_name/.ssh/ 
             设置完成后,请不要退出当前root账户,请另外新开一个终端测试新账户是否能登陆

          

         ssh your_name@your_ip -p your_port
 
        若登陆成功则说明设置成功,可以su 查验是否能执行root权限,也可以测试sudo权限,没有问题后在exit退出当前新建用户。

    

       5.禁用root账户SSH登录

           使用命令:

        vim /etc/ssh/sshd_config

        进入该文件,并找到 PermitRootLogin yes 修改为PermitRootLogin no

        保存退出,Ubuntu用户执行:

                /etc/init.d/ssh restart
       

       此时再来分别测试root账户和新建账户的登录情况,记住此时千万不能退出当前root账户,新开一个ternimal进行测试。

        首先测试root账户登录情况,ssh root@your_ip -p your_port  ,执行后将会得到Permission denied(publickey)。root账户以后再无法登陆了。

        然后测试新建账户登录情况,ssh your_name@your_ip -p your_port ,执行后成功进入服务器 。

      

        以上我们就完成了禁用root SSH登录的方法,以后就用新建账户登陆啦。这样对于服务器安全还是有一定的提高的。       

     

原创粉丝点击