centos禁用root及SSH通过密钥登录

本文档详细介绍了如何在Linux环境中创建具有root权限的新用户,禁用root用户的SSH登录,以及设置SSH密钥登录,以增强系统安全性。首先,通过`adduser`命令创建新用户并授权,然后修改`/etc/ssh/sshd_config`以禁止root SSH登录,并重启SSH服务。最后,生成SSH密钥对,将公钥添加到`authorized_keys`文件中,配置SSH只允许密钥认证,从而实现无密码登录。

一、新建root权限用户

  1. 创建用户

    [root@master ~]# adduser hadoop
    
  2. 初始化密码

    [root@master ~]# passwd hadoop
    
  3. 授权

    #编辑文件
    [root@master ~]# sudo vim /etc/sudoers
    
    #修改文件内容
    ## Allow root to run any commands anywhere 
    root    ALL=(ALL)       ALL
    hadoop  ALL=(ALL)       ALL #将新用户添加再这里
    
    #保存,退出
    
  4. 测试

    不要关闭这个页面,新开一个ssh连接,使用新用户登录。

    [root@master ~]#  sudo cat /etc/passwd
    [sudo] password for hadoop: 
    
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    
     #1) Respect the privacy of others.
     #2) Think before you type.
     #3) With great power comes great responsibility.
     
    #输入密码后可以登录
    

二、禁用root使用ssh登录

  1. CentOS 默认容许任何帐号透过 ssh 登入,包括 root 和一般帐号,为了不让 root 帐号被黑客暴力入侵,可以禁止 root 帐号的 ssh 功能,事实上 root 也没有必要 ssh 登入服务器,因为只要使用 su 或 sudo (当然需要输入 root 的密码) 普通帐号便可以拥有 root 的权限。

    使用root账号登录后,用 vim (或任何文本编辑器) 编辑 /etc/ssh/sshd_config:

    找到

    PermitRootLogin yes
    #修改为
    PermitRootLogin no
    
  2. 使生效

    [root@master ~]# service sshd restart
    
  3. 验证

    不要关闭这个页面,新开一个ssh连接,使用root用户登录,无法成功登录,则设置成功。

三、ssh 密钥登录设置

  1. 使用非root用户登录(但是要有root权限,上述新建账户hadoop)

  2. 生成密钥对

    [hadoop@master ~]$ ssh-keygen -t rsa     #建立密钥对
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): #直接回车
    Created directory '/home/hadoop/.ssh'.
    Enter passphrase (empty for no passphrase): # 输入密码,或者直接按回车,实现无密码登录
    Enter same passphrase again: #重新输入密码或按回车
    Your identification has been saved in /home/hadoop/.ssh/id_rsa.
    Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:HfIkWBAJNCHFKLWuYJW/jWbSMRx2GdfSfV/vnVOL+DI hadoop@master
    The key's randomart image is:
    +---[RSA 2048]----+
    | .o=*oo=..o .    |
    |. .oo..o+. o . ..|
    | ..o o.oo +   . +|
    | .. + o  * .    +|
    |...  =  S o . ..=|
    |o.  . *    . . +o|
    |.  . * .    .   .|
    |    +      E .   |
    |            o    |
    +----[SHA256]-----+
    [hadoop@master ~]$ cd .ssh
    [hadoop@master .ssh]$ ll
    total 8
    -rw------- 1 hadoop root 1675 Jun 24 16:14 id_rsa   #私钥,下载到本地
    -rw-r--r-- 1 hadoop root  395 Jun 24 16:14 id_rsa.pub #公钥
    
  3. 在服务器上安装公钥

    #键入以下命令,在服务器上安装公钥:
    [hadoop@master .ssh]$ cd .ssh
    [hadoop@master .ssh]$ cat id_rsa.pub >> authorized_keys 
    
    #设置权限
    [hadoop@master .ssh]$ chmod 600 authorized_keys
    [hadoop@master .ssh]$ chmod 700 ~/.ssh #只要700的时候,sshd才能读到 
    
  4. 设置ssh配置

    编辑 /etc/ssh/sshd_config:

    [hadoop@master ~]$ sudo vim /etc/ssh/sshd_config
    #在文件末尾新增
    RSAAuthentication yes
    PubkeyAuthentication yes
    
    #禁止使用密码登录,注释掉下面这行,或者将yes改为no
    #PasswordAuthentication yes 
    PasswordAuthentication no
    
  5. 重启SSH服务

    [hadoop@host .ssh]$ service sshd restart
    
  6. 验证

    保持该ssh连接,新开ssh连接,便于有问题可以通过原有ssh连接进行修改:

    输入用户名后, 密码验证界面,如下,选择User Keys
    在这里插入图片描述
    之后,选择导入之前下载到本地的私钥:
    在这里插入图片描述
    点击OK
    在这里插入图片描述
    ​ 选择登录,如果之前创建密钥时,输入的有秘密,应当在下框中输入密码,无密码直接点 击ok登录。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值