因为一般不直接用root用户操作,添加用户并且授权、免密登录就是一套常规操作了。

注:环境为centos7.8,操作的初始角色root

用户创建和授权

创建用户
adduser username

设置密码
passwd username

vim /etc/sudoers 进入文件编辑器,root用户wq!保存即可

## Allow root to run any commands anywhere
root ALL=(ALL) ALL #已有行
## 增加一行
username ALL=(ALL) ALL

客户端键入

ssh-keygen

一路回车

服务端切换用户,创建文件

$ su username
$ cd ~
$ ssh-keygen
$ cd .ssh/
$ vim authorized_keys

把客户端内的 ~/.ssh/id_rsa.pub 的内容全部复制服务端的 authorized_keys 内

ssh username@host -p22

done.

如果ssh连接提示无权限:

在本地 SSH 登录服务器,使用新创建的用户,提示:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
原因是用户主目录下的 .ssh 目录与它里面的 authorized_keys 文件的权限不能。
.ssh 目录的权限应该是 700,authorized_keys 这个文件的权限应该设置成 600 。
注意 .ssh 目录与 authorized_keys 的拥有者都必须是你创建的那个用户。比如我创建了一个叫 aren 的用户,那它应该是 .ssh 与 authorized_keys 的拥有者,并且必须要设置合适的权限

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh_authorized_keys

sudo 下环境变量没有加入到/usr/local/bin导致找不到命令的话

# 修改 /etc/sudoers
# 找到
# Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

#改为
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin