一、Linux服务器中的用户和用户组管理:
添加用户组 groupadd admin
添加用户 useradd shawn -g admin
设置密码 passwd shawn
在登录状态下:
Last login: Tue Dec 15 20:53:31 2020 from **.***.***.***
[root@VM-0-5-centos ~]# groupadd admin
[root@VM-0-5-centos ~]# useradd shawn -g admin
[root@VM-0-5-centos ~]# passwd shawn
Changing password for user shawn.
New password: 在这儿输入密码,不会显示
Retype new password: 在这儿输入密码,不会显示
passwd: all authentication tokens updated successfully.
[root@VM-0-5-centos ~]# exit
logout
Connection to **.***.***.*** closed.
用新用户名登录
shawn@shawn-Ubuntu:~$ ssh shawn@**.***.***.***
shawn@**.***.***.***'s password: 在这儿输入密码,不会显示
Activate the web console with: systemctl enable --now cockpit.socket
[shawn@VM-0-5-centos ~]$ exit
logout
Connection to **.***.***.***0 closed.
二、修改shawn和root的权限
2.1增加shawn的权限
[root@VM-0-5-centos ~]# cd /etc
[root@VM-0-5-centos etc]# ls
......
sudoers
......
[root@VM-0-5-centos etc]# vim sudoers
进入如下界面
找到root ALL=(ALL) ALL
将光标定位到其下一行收
按i进入插入模式
输入shawn ALL=(ALL) ALL
按esc退出插入模式,进入查阅模式
按shift+;进入命令模式
输入wq! 保存退出(强制)
2.2 禁止root用户远程登录
PermitRootLogin yes变为no
重启ssh服务
systemctl restart ssh.service
现在再用root账号登录,拒绝登录
再用Shawn用户登录
三、设置证书认证登录
避免每次登录都输入用户名和密码
3.1 创建本地证书(shawnfile shawnfile.pub)
在本地终端下
ls -a
找到隐藏文件夹 .ssh
如果没有 就创建 mkdir .ssh
进入 .ssh
cd .ssh
创建证书
ssh-keygen -t rsa-C shawn -f shawnfile
/*-t 类型 -C描述 -f创建的文件名*/
一路回车
查看文件 ls
shawnfile shawnfile.pub
3.2 将 shawnfile.pub从本地上传服务器
scp shawnfile.pub shawn@42.192.248.100:.
输入密码
100%传输完成
3.3 在远程服务器中创建秘钥
登录远程服务器
ssh shawn@42.192.248.100
密码
查看所有文件,包括隐藏文件(夹) ls -a
如果没有.ssh文件夹 就创建 mkdir .ssh
进入 cd .ssh
创建文件 touch authorized_keys
3.4 将本地证书Shawnfile.pub写入到服务器的秘钥authorized_keys中
返回上一级目录 cd ..
将Shawnfile.pub都写入到 authorized_keys
cat shawnfile.pub >> ~/.ssh/authorized_keys
修改 .ssh 文件夹的访问权限,只对shawn这个用户可读可写可执行
chmod 700 .ssh
/*
drwx------
分为四组 d rwx --- ---
d代表文件夹
rwx代表 shawn 可读 可写 可执行
---代表 Shawn所在用户组 不可读 不可写 不可执行
---代表 其他用户 不可读 不可写 不可执行
*/
进入.ssh文件夹,修改 authorized_keys文件的访问权限,只对shawn这个用户可读可写
chmod 600 authorized_keys
3.5 在本地建立配置文件
回到本地
进入 .ssh文件夹 cd .ssh
删除 shawnfile.pub
rm shawnfile.pub
shawnfile必须保留在本地,这是跟服务器秘钥的联系authorized_keys
关系:shawnfile 和 shawnfile.pub 共同生成,shawnfile.pub 写入 authorized_keys
再将服务器IP、端口和用户名与shawnfile关联,并给服务器起个名字
在 .ssh文件夹中创建 config文件
vim config
需要安装vim
sudo apt install vim
再次 vim config
插入模式 i,输入:
Host shawnserver
HostName 42.192.248.100
Port 22
User shawn
IdentityFile ~/.ssh/shawnfile
ESC退出编辑模式
: 进入命令模式
wq! 保存并退出
shawnserver是我们给远程服务器起名字
3.6 登录
以后只要在本地输入 ssh shawnserver就能直接进入远程服务器,而不用用户名 IP地址和密码了
这个登录的过程就是
通过ssh 连接到shawnserver 获取 用户名 远程服务器 IP和端口,并通过shawnfile 拿到authorized_keys, 然后就能登录了。