因为一般不直接用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