首页 > 技术文章 > Linux服务器环境,创建用户及添加密钥登录,sudo权限等

jiujiduilie 2020-09-10 17:52 原文

Linux服务器环境,创建用户及添加密钥登录,sudo权限等。自己实践过程中遇到些坑,总结记录一下。

一、服务器环境

$cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

二、操作步骤

# 切换root
sudo su
# 新建用户zhangsan
useradd zhangsan
# 切换到新用户
su zhangsan
#
cd /home/zhangsan
#
mkdir .ssh
# 注意权限要用700
chmod 700 .ssh/
#
cd .ssh/
# 建立公钥文件,密钥对生成等不做赘述,可用工具很多,如Xshell,MobaXterm,git等都可以
vim authorized_keys
# 注意权限要用600
chmod 600 authorized_keys
# 回到root
exit
# 加上sudo权限等,在最后一行添加zhangsan    ALL=(ALL)        NOPASSWD: ALL
vim /etc/sudoers

 

三、遇到的问题

1,登录失败情形1

使用Xshell登录时提示:

To escape to local shell, press 'Ctrl+Alt+]'.

使用MobaXterm登录时提示:

Server refused our key

解决方案:
# 检查原因,查看日志
tail /var/log/secure Sep 10 17:59:54 my-dev sshd[26940]: Authentication refused: bad ownership or modes for file /home/zhangsan/.ssh/authorized_keys Sep 10 18:00:05 my-dev su: pam_unix(su:session): session closed for user zhangsan
# 或者是
Sep 10 17:59:54 my-dev sshd[20572]: Authentication refused: bad ownership or modes for directory /home/zhangsan/.ssh
Sep 10 18:00:05 my-dev su: pam_unix(su:session): session closed for user zhangsan

可以看到明确的原因是权限设置不对,应将.ssh设为700,authorized_keys设为600

2,登录失败情形2

使用Xshell登录时提示:

所选的用户密钥未在远程主机上注册。请再试一次。

使用MobaXterm登录时提示(与情形1相同):

Server refused our key

解决方案:

经过排查后,发现是公钥编辑错误导致的。

公钥格式为

ssh-rsa AAAAB3NzaC1yc2E...

复制成了

sh-rsa AAAAB3NzaC1yc2E

少了一个s,应重新编辑为正确的公钥

cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAzOPpzzdgN7pKcE9WdaJSXrsfMeMAVHZJPFePNZc/e36klzTe33uTEY5Df0/+Vi5SODv/ADU1qj4I1MuuXCHufEcGyhjrbOILVaGUANneXhrWWnpV2P/nI4Dc5O2Z3AUoR75qlzIo+7bk7/ddng+PWT4qm+5QiA1nK6z326l3TpynhwKUe276bPjG/XTqIYo7GQ2q0am/+4r1PSLe3FJbrYiM51WYmDKCHNzV+afuoYpE2BXe/o96SCC4L3crbQyB96TkRNakaVjw6o4hO0Dpe51xzl5lImYSjxVMYdlb1RlJblwI5pcQ5hSB2j8vQmfjLwwcUFbBmIJKeZUxvjA29w== zhangsan

 

四、其它补充

 用户删除:

userdel -r zhangsan

 

推荐阅读