系统进程及服务控制 ssh sshd 服务

#############1.什么是进程###########
进程就是系统未完成并且正在进行的工作

###########2.查看进程#########
1)图形方式查看
gnome-system-monitor
在这里插入图片描述
2)进程查看命令
ps -A ##查看所有进程
ps -a ##在环境中的所有进程,不包含环境信息
ps -u ##显示进程用户信息
ps a ##显示当前环境中运行的进程,包含环境信息
ps x ##列出系统中所有运行包含tty输出设备
ps f ##显示进程父子关系
ps e ##显示进程的详细信息(系统资源的调用)
在这里插入图片描述
在这里插入图片描述

##ps 常用组合
ps aux ##显示系统中所有进程并显示进程用户
ps ef ##显示进程详细信息并显示进程父子关系
ps ax ##显示当前系统中的所有进程
pstree ##显示当前系统的进程树

##显示进程指定信息
ps -o xxx ##显示进程的指定信息
ps -o comm ##进程名称
ps -o user ##进程所有人
ps -o group ##进程所有组
ps -o %cpu ##进程cpu使用率
ps -o %mem ##进程内存使用率
ps -o pid ##进程id
ps -o nice ##进程优先级

进程排序
ps ax --sort=+%cpu|-%cpu
ps ax --sort=+%mem|-%-mem
练习:用一条命令抓取系统cpu使用量排在前五的pid:
在这里插入图片描述

####3.stat中显示的信息####
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
“+” ##前台运行
s ##顶级进程

####4.进程优先级####
1.进程优先级范围
-20——19
2。优先级查看
ps ax -o pid,nice,comm
3.指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n 5 vim ##开启vim并且指定程序优先级为5
4.改变进程优先级
renice -n 优先级数字 进程pid
renice -n -5 1806 ##改变1806进程的优先级为-5
在这里插入图片描述

###环境中进程的前后台调用####
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入后台
fg jobsnum ##把后台进程调回前台
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
在这里插入图片描述
#############5.进程信号#############
1)常用信号等级

man7 signal #查看信号详细信息

1进程重新加载配置
2删除进程在内存中的设置
3删除鼠标在内存中的数据
9强行结束单个进程(不能被阻塞)
15正常关闭进程(可能会被阻塞)
18运行暂停的进程
19暂停某个进程(不能被阻塞)
20把进程打入后台(可以被阻塞)

kill -2
在这里插入图片描述
kill -18 kill-19
在这里插入图片描述
用法:
kill -信号 进程pid
killall -信号 进程名字
pkill -u student -信号 #管理student用户的进程
在这里插入图片描述

###########6.进程的动态监控######
1.top
1 显示cpu每个CPU核的负载
s 调整刷新频率
在这里插入图片描述
c CPU负载排序
m 内存使用量排序
h 查看帮助
u 查看指定用户进程
在这里插入图片描述
k 对指定进程发起信号 先输入1857 后输入对应信号
在这里插入图片描述
q 退出

##########7.控制服务#########
1.什么是服务
服务指在操作系统中,用以支持各种功能的程序.

2.用什么控制服务
系统初始化进程可以对服务进行相应的控制

3.当前系统初始化进程是什么
systemd #系统初始化进程
pstree #显示系统中的进程树

4.进程控制命令
ssh ------->sshd
client -------server
systemctl #服务控制命令
systemctl status sshd 查看服务状态,inactive(不可用),active(可用)
systemctl start sshd 开启服务
systemctl stop sshd 关闭服务
systemctl restart sshd 重启服务
systemctl reload sshd 重新加载服务配置
systemctl enable sshd 设定服务开机启动
systemctl disable sshd 设定服务开机不启动
systemctl list-units 列出已经开启服务当前状态
systemctl list-unit-files 列出所有服务开机启动的状态 disable enable static

##########sshd服务#############

##1.sshd简介####
sshd=secure shell
可以通过网络在主机中开机shell的服务

客户端软件 [c-F9]
sshd

ssh和sshd的区别

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是对客户端的,后者则是针对服务端的配置文件
两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式     

连接方式:
ssh username@ip #文本模式的连接
在这里插入图片描述
ssh -X username@ip #可以在连接成功后开机图形
在这里插入图片描述

注意
第一次连接陌生主机是要建立认证文件
所以会询问是否建立,需要输入yes
在次连接此主机时,因为已经生成~/.ssh/know_hosts文件 所以不需要再次输入yes
在这里插入图片描述

远程复制:
scp file root@ip:dir #上传
在这里插入图片描述
scp root@ip:file dir #下载
在这里插入图片描述
从另一台主机中远程复制了dir1文件夹到本机

###2.sshd的key认证#####
authorized_keys id_rsa id_rsa.pub known_hosts
authorized_keys 此文件出现表示加密完成
id_rsa 私钥
id.rsa.pub公钥
known_hosts 客户端主机第一次连接服务端主机会/root/.ssh下生成known_hosts这个文件

分发钥匙
scp /root/.ssh/id_rsa root@172.25.254.115:/root/.ssh/

测试
在客户主机中(172.25.25.115)
ssh root@172.25.254.215 ##连接时发现直接登录不需要root登录系统的密码认证

实验:
步骤一:在真机中打开两个虚拟机desktop和server,并用

hostnamectlt set-hostname westos_server.westos.com
hostnamectl set-hostname westos_client.westos.com

分别设置server和desktop
步骤二:配置desktop主机ip为172.25.254.115用于客户端,配置server主机ip为172.25.254.215用于服务器端。
步骤三:在两台主机的shell中分别删除/root/.ssh
在这里插入图片描述

为什么要删除/root/.ssh/?
客户端主机第一次连接服务器主机会在这个目录下生成know_hosts这个文件,为了验证这个实验效果,所以得将这个目录晴空,或者直接删除
直接在家目录下面输入ls -a (查看所有文件,包括非隐藏文件和隐藏文件)

步骤四:
在服务器端输入ssh-keygen,生成钥匙和密码,id_rsa是钥匙 id_rsa.pub是锁。三次回车,每次回车都有原因

第一次回车是钥匙和密码存放路径(可以直接回车,存放在默认路径下)
第二次回车是密码(可以直接回车,不设置密码)
第三次回车也是密码(可以直接回车,不设置密码)

在这里插入图片描述
步骤二:在服务端输入ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.215给服务器自己上锁
在这里插入图片描述
在这里插入图片描述
注意:如果客户端没有/root/.ssh/这个文件,客户端使用密码方式重新连接一次服务端,会生成该文件,然后就可以将钥匙传给客户端了。

步骤三:客户端使用密码方式重新连接一次服务端,会生成该文件,并且退出。
在这里插入图片描述
步骤四:服务器重新给用户配钥匙,并且查看钥匙是否一致

scp /root/.ssh/id_rsa  root@172.25.254.115:/root/.ssh/
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190718175454148.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JhcGlnMQ==,size_16,color_FFFFFF,t_70)

步骤五:验证客户端是否可以免密连接服务端
在这里插入图片描述
上图,已经实现了免密连接。

#######3.sshd的安全设定######
(1)为何要进行安全设定

 因为服务端root权限太大,客户端如果使用服务端的root权限极不安全
 为了保证ssh服务器的安全性:服务端开放的权限不能太多,一般不太让客户端主机用服务端主机的超级用户root

78 PasswordAuthentication yes|no ##是否允许用户通过登录系统的密码做sshd的认证
48 PermitRootLogin yes|no ##是否允许root通过sshd的服务认证
52 Allowusers student westos ##设定用户白名单,白名单出现默认不在名单的用户不能使用sshd
53 Denyuser westos ##设定用户黑名单,黑名单出现默认不在名单的用户可以使用sshd

每次改完一个参数重新启动才会其作用,在服务端systemctl restart sshd.service

如何进行安全设定?
步骤一:先关闭免密操作,恢复到以前,使两台主机没有连接在这里插入图片描述
步骤二:在服务端 vim /etc/ssh/sshd_config这个文件

步骤三:验证78行的PasswordAuthentication yes|no (是否允许密码登陆)
先在服务器端建立一个lee用户,用root权限给lee设置密码,然后在/etc/ssh/sshd_config这个文件里面设置78行改为no,重启服务,然后在客户端连接服务端,可以看到不能用密码连接服务端。
在这里插入图片描述
在这里插入图片描述
将no改成yes再次重启,发现可以连接。
在这里插入图片描述
如图,lee又不能登陆服务器端

步骤四:验证48行,PermitRootLogin yes|no

是否允许服务端的root用户通过sshd服务
注意,此实验前,要将超级用户免密取消,方法:rm -fr /root/.ssh
要将刚才78的变成yes
默认是yes并且被注释
去掉注释并且将yes改成no才可以限制root用户登陆

在这里插入图片描述

在这里插入图片描述
root用户不能登陆服务器

步骤五:在/etc/ssh/sshd_config 这个文件里面的任意一行写入AllowUser tom westos

设定用户白明白,此名单里面的用户可以作sshd服务(服务端不存在用户直接输入即可生成,多用户用,隔开
在服务端建立用户时候,必须passwd user 设置密码

在服务端建立两个用户tom和westos 密码设为westos
在这里插入图片描述
在这里插入图片描述
在服务端重启sshd服务,后验证tom和westos是否可以用密码登陆
在这里插入图片描述
登出用户,用root用户登陆,发现不能登陆在这里插入图片描述
步骤六:取消白名单,加#,然后在服务端打开/etc/ssh/sshd_config这个文件并设置黑名单,重启后生效。

设定用户黑名单,此名单里面的用户不可用sshd服务

在这里插入图片描述
总结:白名单比黑名单更安全,对于linux系统

#####4.添加sshd登录信息########

  vim /etc/motd ##文件的内容就是登录后显示的信息
  为了使客户端在连接服务端的时候能够直观的看到服务端的相关信息

在这里插入图片描述
在这里插入图片描述
######5.用户的登录审计#######
1.w ##查看正在适用当前系统的用户
-f ##查看使用来源
-i ##显示ip
/var/run/utmp

不能用cat来查看/var/run/utmp 只能用file来看 因为此文件是个data数据

在这里插入图片描述
2.last #查看试用过并退出的用户信息
/var/log/wtmp
3.lastb ##试图登录但没成功的用户
/var/log/btmp

6.如何踢出别人正在我主机上进行的进程
说明:此实验需要在两台虚拟机上面完成
步骤一:用desktop主机远程连接server主机
步骤二:在server上用w -i查询ip
在这里插入图片描述
步骤三:查看该进程的id 使用ps aux | grep pts/1
在这里插入图片描述
步骤四:kill -9 他的进程id,然后再到客户端查看是否被踢出
在这里插入图片描述
在这里插入图片描述
客户端直接断开连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值