CentOS新建用户并使能密钥登录的方法
CentOS默认只有一个root用户,但是root用户的权限过大,而且不利于多人协作,基于权限管理和安全的原因,我们为系统新建一个用户,并且使能其SSH登录,同时禁止root用户的登录;
基于CentOSLinuxrelease7.6.1810(Core)实践;
新建用户
在CentOS中,adduser和useradd没有区别:
[root@centos_7_6_1810~]#ll/usr/sbin/|grepuser lrwxrwxrwx1rootroot7Jun2410:14adduser->useradd -rwxr-xr-x.1rootroot33104Aug32017fuser -rwxr-xr-x.1rootroot15832Apr132018lnewusers -rwxr-xr-x.1rootroot15752Apr132018luseradd -rwxr-xr-x.1rootroot11576Apr132018luserdel -rwxr-xr-x.1rootroot19896Apr132018lusermod -rwxr-xr-x1rootroot76232Mar142019newusers -rwxr-xr-x1rootroot33072Mar142019runuser -rwxr-xr-x.1rootroot19720Apr112018sasldblistusers2 -rwxr-x---1rootroot118224Mar142019useradd -rwxr-x---1rootroot80400Mar142019userdel -rwxr-x---1rootroot113856Mar142019usermod -rwsr-xr-x.1rootroot11376Oct312018usernetctl
从上面的命令中可以看出:adduser只不过是useradd命令的一个软连接;
关于软连接,你可以暂时把它理解成Windows系统中的快捷方式;
使用useradd命令创建新用户:
[root@centos_7_6_1810~]#useraddluizyao [root@centos_7_6_1810~]#ls/home/ luizyao
在大多数Linux的发行版本中,useradd命令并不会在/home/下创建对应的用户目录,如果想要创建,需要在命令中添加-m(--create-home)选项;但是,CentOS会为我们自动创建这个用户目录;
如果我们想要以这个用户名登录系统,必须为其设置一个密码:
[root@centos_7_6_1810~]#passwdluizyao Changingpasswordforuserluizyao. Newpassword: Retypenewpassword: passwd:allauthenticationtokensupdatedsuccessfully.
然后,我们就可以用这个用户登录系统:
[luizyao@centos_7_6_1810~]$whoami luizyao
为新用户授权
通常情况下,新用户在自己的用户目录(/home/luizyao/)下拥有完整的权限,其它目录需要他人授权;而我们最常用的就是root用户的权限,这时候sudo命令就可以帮助到我们:它允许信任的用户以其他用户的身份去执行命令,默认使用的是root用户;
新用户并不在信任名单中,所以我们无法借用root用户身份去执行命令:
注意:此时,以新用户的身份登录系统的;
[luizyao@centos_7_6_1810/]$sudowhoami [sudo]passwordforluizyao: luizyaoisnotinthesudoersfile.Thisincidentwillbereported.
在CentOS中,我们有两种方法把新用户添加到Sudoers列表中:
注意:此时,以root的身份登录系统;
方法一:把新用户添加到wheel用户组中
基于RedHat分发版本的系统,如CentOS和Fedora,用户组wheel已经被授予sudo的权限;所以,我们可以通过把新用户添加到wheel用户组中,来获取sudo的权限:
[root@centos_7_6_1810~]#groupsluizyao luizyao:luizyao [root@centos_7_6_1810~]#usermod-aGwheelluizyao [root@centos_7_6_1810~]#groupsluizyao luizyao:luizyaowheel
我们通过usermod命令把新用户添加到wheel用户组中,可以使用groups命令查看用户所属的用户组;
这个时候,新用户就可以借助root的权限执行命令了:
[luizyao@centos_7_6_1810root]$sudowhoami [sudo]passwordforluizyao: root
注意:
这种方法下,执行sudo命令需要输入新用户的密码,因为这是wheel用户组的默认配置,如下所示:
#/etc/sudoers 106##Allowspeopleingroupwheeltorunallcommands 107%wheelALL=(ALL)ALL 108 109##Samethingwithoutapassword 110#%wheelALL=(ALL)NOPASSWD:ALL
从用户组中删除用户。可以使用如下命令:
[root@centos_7_6_1810~]#gpasswd-dluizyaowheel Removinguserluizyaofromgroupwheel [root@centos_7_6_1810~]#groupsluizyao luizyao:luizyao
方法二:把新用户添加到sudoers列表中
在/etc/sudoers文件中,可以配置用户和用户组的sudo权限,这种方式更加灵活一点;并且,有两种方法为新用户配置权限:
1.你可以直接在/etc/sudoers文件中配置新用户的权限,但是要注意这个文件的默认权限是只读的,所以你要先添加写入权限,编辑完以后,再恢复为只读;
请使用visodu命令修改/etc/sudoers文件,因为它会帮你检查语法错误;
2.你也可以在/etc/sudoers.d目录下,为新用户添加一个专门的配置文件(推荐):
bash[root@centos_7_6_1810~]#echo"luizyaoALL=(ALL)NOPASSWD:ALL"|tee/etc/sudoers.d/luizyaoluizyaoALL=(ALL)NOPASSWD:ALL[root@centos_7_6_1810~]#ll/etc/sudoers.d/luizyao-rw-r--r--1rootroot32Sep1717:51/etc/sudoers.d/luizyao
上述命令表示:luizyao可以在任何主机上(第一个ALL)以任何用户的身份(第二个ALL,默认为root)执行任何命令(第三个ALL),并且不需要密码:
[luizyao@centos_7_6_1810root]$sudowhoami root
注意:文件的名字可以是任意的,只是通常我们会配置成用户名;
新用户使能SSH密钥登录
此时,以新用户的身份登录系统;
创建密钥对:
[luizyao@centos_7_6_1810~]$ssh-keygen-tecdsa#椭圆曲线数字签名算法 Generatingpublic/privateecdsakeypair. Enterfileinwhichtosavethekey(/home/luizyao/.ssh/id_ecdsa):#选择密钥对存放的文件夹 Createddirectory'/home/luizyao/.ssh'. Enterpassphrase(emptyfornopassphrase):#私钥的密码 Entersamepassphraseagain:#确认私钥密码 Youridentificationhasbeensavedin/home/luizyao/.ssh/id_ecdsa. Yourpublickeyhasbeensavedin/home/luizyao/.ssh/id_ecdsa.pub. Thekeyfingerprintis: SHA256:FljQN9JFxB/C83Mv7N3rFNLCxXICRxaKzKDb+Tzsgwoluizyao@centos_7_6_1810 Thekey'srandomartimageis: +---[ECDSA256]---+ |.+..B==.| |.o*=Xo| |...*oB=| |o...X.| |.oS==.| |.+=o| |E.=.+.| |.....oo| |.....o.| +----[SHA256]-----+
下载私钥到本地:
基于MacOS的实践;
使用scp命令下载私钥:
yaomengdeMacBook-Air:~yaomeng$scpluizyao@:/home/luizyao/.ssh/id_ecdsa~/.ssh/
此时,我们仍然需要密码登录:
yaomengdeMacBook-Air:~yaomeng$sshluizyao@Enterpassphraseforkey"/Users/yaomeng/.ssh/id_ecdsa":#输入私钥密码,登录失败 luizyao@www.luizyao.compassword:#luizyao的用户密码 Lastlogin:TueSep1722:50:222019
SSH免密登录
重命名公钥为authorized_keys:
[luizyao@centos_7_6_1810~]$mv~/.ssh/id_ecdsa.pub~/.ssh/authorized_keys [luizyao@centos_7_6_1810~]$ll~/.ssh/ total8 -rw-r--r--1luizyaoluizyao185Sep1722:58authorized_keys -rw-------1luizyaoluizyao314Sep1722:58id_ecdsa
注意:
因为我之前并没有authorized_keys文件,所以这里我直接重命名;如果之前已经有authorized_keys文件,可以使用以下命令,把公钥添加到文件末尾:
cat>>~/.ssh/authorized_keys<~/.ssh/id_ecdsa.pub
注意authorized_keys文件、~/.ssh/目录、或者用户的home目录(/home/luizyao/)对其他用户赋予了写入的权限,那么sshd判断此文件已经不安全,将不会使用这个文件,除非你已经设置StrictModes为no;
你可以通过mansshd命令查看帮助文档:
~/.ssh/authorized_keys Liststhepublickeys(DSA,ECDSA,Ed25519,RSA)thatcanbeusedforlogginginasthisuser.Theformatofthisfileisdescribedabove.Thecon‐ tentofthefileisnothighlysensitive,buttherecommendedpermissionsareread/writefortheuser,andnotaccessiblebyothers. Ifthisfile,the~/.sshdirectory,ortheuser'shomedirectoryarewritablebyotherusers,thenthefilecouldbemodifiedorreplacedbyunautho‐ rizedusers.Inthiscase,sshdwillnotallowittobeusedunlesstheStrictModesoptionhasbeensetto“no”.
此时,我们就可以使用SSH免密登录:
yaomengdeMacBook-Air:~yaomeng$sshluizyao@www.luizyao.com Enterpassphraseforkey"/Users/yaomeng/.ssh/id_ecdsa":#私钥密码 Lastlogin:WedSep1800:00:412019from49.65.108.161
去使能SSH密码登录
现在,我们仍然可以使用密码登录,这还是不安全的,现在我们就来禁止使用密码登录系统;
对于CentOS系统来说,只需要修改SSH配置文件/etc/ssh/sshd_config中的PasswordAuthentication为no;
再重启SSH服务:
[luizyao@centos_7_6_1810~]$sudosystemctlrestartsshd
我们便禁止了SSH的密码登录,只能使用密钥登录;
其它
为了进一步提升系统的安全性,我们还可以做一些事情:
禁止root用户使用SSH登录
只需要修改SSH配置文件/etc/ssh/sshd_config中的PermitRootLogin为no,再重启SSH服务;
使用非常规的SSH端口
默认的SSH端口是22,我们可以修改为不常用的端口:修改SSH配置文件/etc/ssh/sshd_config中的Port值(例如:10178),再重启SSH服务;
我们还需要修改防火墙中有关sshd的配置,CentOS7默认使用firewalld防火墙,我们对其做如下配置:
将firewalld关于ssh的默认配置文件,复制到系统配置文件夹内:
[luizyao@centos_7_6_1810~]$sudocp/usr/lib/firewalld/services/ssh.xml/etc/firewalld/services/
修改配置文件中的端口配置:
SSH SecureShell(SSH)isaprotocolforloggingintoandexecutingcommandsonremotemachines.Itprovidessecureencryptedcommunications.IfyouplanonaccessingyourmachineremotelyviaSSHoverafirewalledinterface,enablethisoption.Youneedtheopenssh-serverpackageinstalledforthisoptiontobeuseful.
重载firewalld配置:
[luizyao@centos_7_6_1810~]$sudofirewall-cmd--reload success
禁ping
为防火墙添加如下规则,并重载配置:
[luizyao@centos_7_6_1810~]$sudofirewall-cmd--permanent--add-icmp-block=echo-reply [luizyao@centos_7_6_1810~]$sudofirewall-cmd--permanent--add-icmp-block=echo-request [luizyao@centos_7_6_1810~]$sudofirewall-cmd--reload
总结
以上所述是小编给大家介绍的CentOS新建用户并使能密钥登录的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。