网络服务SSH-远程访问及控制

一.SSH远程管理

1.SSH介绍

SSH(Secure Shell)是一种安全通道协议,最早是由芬兰的一家公司开发出来,并且在IETF

(Internet Engineering Task Force)的网络草案基础上制定而成的标准协议。主要用来实现字符

界面的远程登录、远程复制等功能 ;SSH协议还对通信双方的数据传输进行了加密处理,其中包括

用户登录时输入的用户口令。因此SSH协议具有很好的安全性

拓展:客户端软件 Xshell 界面截图SSH协议默认使用的是22号端口,其他常用的远程连接终端软件还有CRT、MobaXterm 和 Putty 等。

拓展:其他远程连接的方式 telnet (tcp/23端口,明文传输);一般主机上没有下载,需要自己安装

用法:telnet + 目标主机

一般不允许使用 root 用户登录;需要使用其他用户登录后;再切换至 root 用户。

2.OpenSSH

(1)openssh 介绍

OpenSSH 是服务端软件是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。

CentOS 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动;

执行"systemctl start sshd"命令即可启动 sshd 服务;

执行"systemctl enable sshd"命令即可实现开机自动启动 sshd 服务;

sshd 服务默认使用的是TCP的 22端口

sshd 服务的默认配置文件是/etc/ssh/sshd_config

在 /etc/ssh/ 目录下有两个很相似的文件 ssd_config 和 sshd_config 两者ssh服务器的配置文件

二者区别在于 ssd_config 是针对客户端的配置文件, sshd_config 则是针对服务端的配置文件。

(2)sshd_config 配置文件的常用选项设置

复制代码
vim /etc/ssh/sshd_config        #服务端配置文件

Port 22 						#默认监听端口为 22
ListenAddress 0.0.0.0 			#监听地址为任意网段,也可以指定OpenSSH服务器的具体IP
LoginGraceTime 2m 				#登录验证时间为 2 分钟
PermitRootLogin no 				#禁止 root 用户登录
MaxAuthTries 6 					#最大重试次数为 6
PermitEmptyPasswords no 		#禁止空密码用户登录
UseDNS no 						#禁用 DNS 反向解析,以加快远程连接速度

(3)配置 sshd 文件 vim /etc/ssh/sshd_config

复制代码
[root@192 ~]# vim /etc/ssh/sshd_config

Port 1234                    #修改端口号为1234,删掉前面的#号即可
#AddressFamily any
ListenAddress 192.168.10.10 #修改监听地址操作相同
               修改完,重启sshd服务即可修改成功
 [root@192 ~]# ss -lntp | grep ssh             #过滤只查看sshd服务的进程信息
LISTEN     0      128          *:22                       *:*                   users:(("sshd",pid=1148,fd=3))
LISTEN     0      128    127.0.0.1:6010                     *:*                   users:(("sshd",pid=1310,fd=9))
LISTEN     0      128       [::]:22                    [::]:*                   users:(("sshd",pid=1148,fd=4))
LISTEN     0      128      [::1]:6010                  [::]:*                   users:(("sshd",pid=1310,fd=8))

[root@192 ~]# systemctl restart sshd          #重启sshd服务

[root@192 ~]# ss -lntp | grep ssh
LISTEN     0      128    192.168.10.10:1234                     *:*                   users:((sshd",pid=2124,fd=3))
LISTEN     0      128    127.0.0.1:6010                     *:*                   users:(("sshd",pid=1310,fd=9))
LISTEN     0      128      [::1]:6010                  [::]:*                   users:(("sshd",pid=1310,fd=8))

              #可以从查看信息第一行看见 *:22 改成192.168.10.10:1234

[root@192 ~]# vim /etc/ssh/sshd_config

LoginGraceTime 20s				#设置登录验证时间为 20秒,删掉前面的#号即可
MaxAuthTries 4                  #设置最大重试次数为 4

PermitRootLogin no				#设置禁止 root 用户登录
PermitEmptyPasswords no 		#禁止空密码用户登录

【1】登录验证时间设置为20秒

【3】尝试四次密码错误后,服务器断开连接

【2】 禁止root用户登录,换成其他账号可以登录,有时候为了限制sshd服务的用户登录控制,也会禁止空密码账户登录;

【4】白名单和黑名单的使用

复制代码
允许   AllowUsers
AllowUsers zhangsan lisi wangwu@61.23.24.25

禁止   DenyUsers
DenyUsers zhangsan

注意:允许和禁止不要同时使用

拓展:
@能够让用户只能指定IP进入
多个用户之间用空格分隔

3.使用 SSH 客户端程序

(1)ssh 远程登录

复制代码
ssh [选项] 用户名@目标主机

需要用目标主机的什么用户登录 改变用户名即可
[root@192 ssh]# ssh root@192.168.10.20
[root@192 ssh]# ssh test@192.168.10.20    #在用户存在的情况下

如果 SSH 的端口号发生了改变,需要在命令中加入 -p  选项指定端口号
-p:指定非默认的端口号,默认使用 22端口

[root@192 ssh]# ssh -p 2345 root@192.168.10.20

[root@192 ssh]# rpm -q openssh           #查看openssh是否安装
openssh-7.4p1-22.el7_9.x86_64

[root@192 ssh]# ssh root@192.168.10.20   #登录192.168.10.20

The authenticity of host '192.168.10.20 (192.168.10.20)' can't be established.
ECDSA key fingerprint is SHA256:Fw2IK0fZbnTNyDinyZPExCFe7qFpGtzoTY1h9SRzbz8.
ECDSA key fingerprint is MD5:a5:82:97:49:7c:47:84:2a:86:b5:b3:4c:7f:2d:e3:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.20' (ECDSA) to the list of known hosts.
root@192.168.10.20's password: 
Last login: Sat Apr 27 20:16:40 2024 from 192.168.10.1

[root@192 ~]# ifconfig                    #查看IP

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.20  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::1122:13b6:cdab:29e1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1b:a9:72  txqueuelen 1000  (Ethernet)
        RX packets 111  bytes 16588 (16.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 154  bytes 19449 (18.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

拓展:当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入"yes")后才能继续验证。接收的密钥信息将保存到~/.ssh/known_hosts 文件中。密码验证成功以后,即可登录目标服务器的命令行环境中了

如果要省略这个步骤去 /etc/ssh/ssh_config 客户端配置文件中去修改下面图片中的配置即可

拓展:在 ssh 用户名@目标主机 后面加上命令后可以实现切换到目标主机使用命令后立即退出

复制代码
[root@192 opt]# ssh root@192.168.10.20 ifconfig
root@192.168.10.20's password: 
Permission denied, please try again.
root@192.168.10.20's password: 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.20  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::1122:13b6:cdab:29e1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1b:a9:72  txqueuelen 1000  (Ethernet)
        RX packets 1625  bytes 159986 (156.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1106  bytes 123151 (120.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@192 opt]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::cb8c:1559:2416:bfcd  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:6d:59:11  txqueuelen 1000  (Ethernet)
        RX packets 7081  bytes 655153 (639.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5332  bytes 714983 (698.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(2)scp 远程复制

【1】将目标主机的文件或目录复制到本机

复制代码
scp [-P 端口] [-r] 用户名@目标主机IP:绝对路径  本机路径 

常用选项
scp -P   #端口号不同的情况下使用
scp -r   #复制目录的时候使用

目标主机下/opt/目录下有文件 123.txt 和目录 abc ;abc目录下有文件a.txt,内容abcdefg


[root@192 ssh]# cd /opt/
[root@192 opt]# ls
rh
[root@192 opt]# scp root@192.168.10.20:/opt/123.txt /opt/    #复制文件到本机/opt/目录下
root@192.168.10.20's password: 
123.txt                                         100%    7     2.4KB/s   00:00    
[root@192 opt]# ls
123.txt  rh
[root@192 opt]# scp -r root@192.168.10.20:/opt/abc /opt/    #复制目录到本机/opt/目录下
root@192.168.10.20's password: 
a.txt                                           100%    8     5.0KB/s   00:00    
[root@192 opt]# ls
123.txt  abc  rh
[root@192 opt]# cat abc/a.txt
abcdefg

拓展:如果当前目录中存在文件名一样的文件,将会直接覆盖;不会有提示;一定要注意使用

复制代码
[root@192 opt]# ls
123.txt  abc  rh 
[root@192 opt]# cat 123.txt                #查看文件内容
123456
[root@192 opt]# scp root@192.168.10.20:/opt/123.txt /opt/   #复制目标主机中的文件
root@192.168.10.20's password: 
123.txt                                100%    7    13.7KB/s   00:00    
[root@192 opt]# cat 123.txt                #查看文件内容
654321
     
      #只要复制过程修改复制文件的文件名即可
[root@192 opt]# scp root@192.168.10.20:/opt/123.txt /opt/1234.txt  #修改文件名
root@192.168.10.20's password: 
123.txt                                100%    7     5.0KB/s   00:00    
[root@192 opt]# ls
1234.txt  123.txt  abc  rh

【2】将本地的文件/目录复制到目标主机

复制代码
scp [-P 端口] [-r] 本机文件/目录路径 ...  用户名@目标主机IP:绝对路径

                      #复制文件和目录到192.168.10.40主机中
[root@192 opt]# scp -r *.txt abc root@192.168.10.40:/opt/

The authenticity of host '192.168.10.40 (192.168.10.40)' can't be established.
ECDSA key fingerprint is SHA256:BrrBajtrhef9T6SQ+0qza0JYtNaFoPYobWfI6wvUuQ0.
ECDSA key fingerprint is MD5:14:60:55:d3:76:b4:6c:e8:fd:fd:60:c6:29:f6:7d:00.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.40' (ECDSA) to the list of known hosts.
root@192.168.10.40's password: 

1234.txt                                                     100%    7    13.4KB/s   00:00    
123.txt                                                      100%    7     7.3KB/s   00:00    
a.txt                                                        100%    8    21.9KB/s   00:00  
 
[root@192 opt]# ssh root@192.168.10.40         #切换到192.168.10.40主机中
root@192.168.10.40's password: 
Last login: Sat Apr 27 21:12:26 2024 from 192.168.10.1
[root@192 ~]# cd /opt/                         
[root@192 opt]# ls                             #查看文件和目录是否传输过来
1234.txt  123.txt  abc  rh
[root@192 opt]# 

(3)sftp 文件传输

使用了加密/解密技术,传输效率比普通的FTP要低,但安全性更高;操作语法sftp与ftp几乎一样。

复制代码
sftp  用户名@目标主机

[root@192 opt]# sftp 用户名@目标主机

sftp> get 文件名		    #下载文件到ftp目录
sftp> put 文件名		    #上传文件到ftp目录
sftp> quit				#退出

[root@192 opt]# sftp root@192.168.10.20    #切换到目标主机
root@192.168.10.20's password: 
Connected to 192.168.10.20.
sftp> cd /opt/                             
sftp> ls
123.txt  abc      rh       
sftp> get 123.txt                          #下载文件到ftp目录
Fetching /opt/123.txt to 123.txt
/opt/123.txt                               100%    7     6.4KB/s   00:00    
sftp> get abc                              #下载目录,失败,只能下载文件
Fetching /opt/abc/ to abc
Cannot download non-regular file: /opt/abc/                             
sftp> cd abc/                              #需要切换到文件所在的目录
sftp> ls
a.txt  
sftp> get a.txt
Fetching /opt/abc/a.txt to a.txt
/opt/abc/a.txt                               100%    8     4.5KB/s   00:00    
sftp> cd /home/liu/                          #切换到需要上传的目录
sftp> ls
sftp> put 123.txt                            #上传文件到ftp目录 
Uploading 123.txt to /home/liu/123.txt        
123.txt                                      100%    7     3.3KB/s   00:00    
sftp> quit                                   #退出
[root@192 opt]# 

                        #验证 sftp 服务是否使用成功 
[root@192 opt]# ls                           #查看本机文件是否下载成功
123.txt  a.txt
[root@192 opt]# ssh root@192.168.10.20       #切换到主机到192.168.10.20
root@192.168.10.20's password: 
Last login: Sat Apr 27 21:37:34 2024 from 192.168.10.10
[root@192 ~]# cd /home/liu/                   #查看文件是否上传到目标目录
[root@192 liu]# ls
123.txt  a.txt
[root@192 liu]# 

4.sshd 服务支持两种验证方式

4.1账号密码登录

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

复制代码
PasswordAuthentication yes

4.2密钥对验证登录

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。

复制代码
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys    
                              #服务端的公钥文件默认保存路径

拓展1:密码验证和密钥对验证优先级

复制代码
当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式。
vim /etc/ssh/sshd_config
PasswordAuthentication yes                      #启用密码验证
PubkeyAuthentication yes                        #启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys         #指定公钥库文件

拓展2:公钥和私钥的关系

(1)公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。

(2)不能根据一个密钥来推算出另一个密钥。

(3)公钥对外公开,私钥本地持有,只有私钥的持有人才知道

4.3密钥对的创建和使用

(1)确保服务端开启了ssh密钥对验证

复制代码
vim /etc/ssh/sshd_config      #进入到文件中查看密钥对验证是否开启

PubkeyAuthentication yes 

(2)在客户端创建密钥对

复制代码
                            #公钥和私钥文件的存放路径
[root@192 ~]# cd /root/
[root@192 ~]# ls -A
anaconda-ks.cfg  .bashrc  .dbus                 .local    .Xauthority  图片  桌面
.bash_history    .cache   .esd_auth             .ssh      公共         文档
.bash_logout     .config  .ICEauthority         .tcshrc   模板         下载
.bash_profile    .cshrc   initial-setup-ks.cfg  .viminfo  视频         音乐
[root@192 ~]# cd /root/
[root@192 ~]# cd .ssh/
[root@192 .ssh]# ls
id_rsa  id_rsa.pub
[root@192 .ssh]# 
                    #id-rsa 为私钥文件   #id-rsa.pub 为公钥文件

生成的密钥对默认存放在当前用户家目录的 .ssh/ 目录中,
私钥是留给自己使用的,公钥(XXX.pub)是给服务端使用的

(3)上传公钥至服务端

复制代码
[root@192 .ssh]# ssh-copy-id -i id_rsa.pub root@192.168.10.10

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
ECDSA key fingerprint is SHA256:I6OYY2CvnKXi1ka6D5JqIGc1SlgZkiplUnLT7TUYZk4.
ECDSA key fingerprint is MD5:93:27:ec:d1:d0:6f:eb:2c:7e:6a:2a:db:e4:d6:f2:b4.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.10.10's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.10.10'"
and check to make sure that only the key(s) you wanted were added.

[root@192 .ssh]# 
                          #到服务端去查看公钥文件位置
[root@192 ~]# ls -A
anaconda-ks.cfg  .bashrc  .dbus                 .local    .Xauthority  图片  桌面
.bash_history    .cache   .esd_auth             .ssh      公共         文档
.bash_logout     .config  .ICEauthority         .tcshrc   模板         下载
.bash_profile    .cshrc   initial-setup-ks.cfg  .viminfo  视频         音乐
[root@192 ~]# cd .ssh/
[root@192 .ssh]# ls
authorized_keys               #公钥文件
[root@192 .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpW2x2LEiWoQVKxnQCRDZnUqn/JCCJsGBPB+kGavnzUt2S1o6mUiZLzS7B/1LnHURns2Q2rzIFleKFZblpXKJ2Z0drHE+bmKtgzl+8V1tKlFXYXLssVL6xBOtIUK2OUEfEfEGZrWTYdRrvnkxrhxr+hGah2pZxHsJ9KCk2wcp4A9b1TRfEcAISxDEbpm8RZ5TRZwvxMuPg9P0hBRQSbN2lomEj9x34e8i/QP42hUq5V2MGe56b9YsIavMztWdpZR4c1aGJXxYO8jw3HvplmfqEh14UPg7AwIqCeJC/KVaX8iYq60atagfDcehftqr07FPmcJ2ZzMnesGbz+WwoiPsr root@192.168.10.20


              #公钥信息会自动保存到服务端的 ~/.ssh/authorized_keys 文件里

(4)客户端 ssh 远程登录,使用密钥对的密码进行验证

复制代码
[root@192 .ssh]# ssh root@192.168.10.10         #连接到目标主机
Enter passphrase for key '/root/.ssh/id_rsa':   #输入设置的密钥密码
Last login: Sat Apr 27 22:55:10 2024 from 192.168.10.1
[root@192 ~]# ifconfig                          #查看IP
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::cb8c:1559:2416:bfcd  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:6d:59:11  txqueuelen 1000  (Ethernet)
        RX packets 2076  bytes 1974859 (1.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 875  bytes 103204 (100.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

拓展1:注密钥对在客户端是谁创建的,只能谁使用;密钥对上传给服务端的哪个用户,那么就只能使用那个用户去登录。
拓展2:免密登录

1.在客户端创建密钥对的时候不创建私钥密码,正常上传公钥文件到服务区,即可实现免密登录

2.创建ssh会话代理(只能在当前会话中有效)

复制代码
ssh-agent bash
ssh-add
Enter passphrase for /root/.ssh/id_ecdsa:
Identity added:/root.ssh/id_ecdsa(/root.ssh/id_ecdsa)
                      #即可实现面交互登录

拓展3:一键创建实现密钥对的创建和一键实现公钥文件的上传

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

sshpass -p 'abc1234' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.80.20

需要提前安装 sshpass 软件

二.TCP Wrappers 访问控制

1.TCP Wrappers介绍

TCP Wrappers(TCP封套) 是一个简单的防火墙机制。用来将TCP服务程序"包裹"起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。

2.TCP Wrappers 保护原理

3.TCP Wrappers 保护机制的两种实现方式

(1)直接使用 tcpd 程序对其他服务程序进行保护,需要运行 tcpd 程序。

(2)由其他网络服务程序调用 libwrap.so.* 动态函数库,不需要运行 tcpd 程序。此方式的应用更加广泛,也更有效率。

由于支持 TCP Wrappers 的服务必定包含 libwrap 这一个动态函数库,可以使用 ldd 来查看服务

复制代码
ldd $(which sshd) | grep libwrap       #sshd的
	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f91d0bdb000)

ldd $(which vsftpd) | grep libwrap     #vsftpd的
	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f4304f3b000)

            which 查找文件路径     $直接提取 which sshd 的结果

(3)TCP Wrappers 的访问策略

TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。

通过**/etc/hosts.allow,/etc/hosts.deny**这两个文件来管理的一个类似防火墙的机制,分别用来设置允许和拒绝的策略。

/etc/hosts.allow 设置允许访问 tcp 服务程序的策略(白名单)

/etc/hosts.deny 设置禁止访问 tcp 服务程序的策略 (黑名单)

(4)TCP Wrappers 的格式

<服务程序列表>:<客户端地址列表>

【1】服务程序列表

ALL:代表所有的服务。

单个服务程序:如"vsftpd"。

多个服务程序组成的列表:如"vsftpd,sshd"
【2】客户端地址列表

ALL:代表任何客户端地址。

LOCAL:代表本机地址。

多个地址以逗号分隔

允许使用通配符 "*" 和 "?" ,前者代表任意长度字符,后者仅代表一个字符

网段地址,如 "192.168.80." 或者 192.168.80.0/255.255.255.0 (掩码只支持 netmask 的地址显示方式)

区域地址,如 ".benet.com"匹配 benet.com 域中的所有主机。

ALL:ALL 表示所有用户和所有客户端

(5)TCP Wrappers 机制的基本原则

首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;

否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;

如果检查上述两个文件都找不到相匹配的策略,则允许访问。

"允许所有,拒绝个别"

只需在/etc/hosts.deny文件中添加相应的拒绝策略
"允许个别,拒绝所有"

除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts.deny文件中设置"ALL:ALL"的拒绝策略

(6)示例操作

三.总结

1.要理解sshd配置文件的用法

2.要知道使用SSH客户端的程序

3.了解 sshd 服务支持的验证登录方式

4.了解 /etc/host.allow 和/etc/hosts.deny 的含义和用法

相关推荐
文静小土豆1 小时前
Rocky Linux 二进制 安装K8S-1.35.0高可用集群
linux·运维·kubernetes
小技工丨1 小时前
华为TaiShan 200 2280 ARM服务器虚拟化部署完整指南
运维·服务器·arm开发
403240733 小时前
[Jetson/Ubuntu 22.04] 解决挂载 exFAT 硬盘报错 “unknown filesystem type“ 及只读权限问题的终极指南
linux·运维·ubuntu
零意@3 小时前
debian如何把新编译的内核镜像替换原来的内核
运维·debian·更新内核版本·linux内核版本更新·debian更新内核
Love丶伊卡洛斯3 小时前
Ubuntu 部署 STUN服务端
linux·运维·ubuntu
有毒的教程5 小时前
SaltStack 开源自动化运维工具详细介绍
运维·开源·saltstack
大房身镇、王师傅5 小时前
【VirtualBox】VirtualBox 7.1.6 RockyLinux10 配置增强功能 设置共享目录
运维·服务器·virtualbox·rockylinux10
betazhou5 小时前
rsync使用案例分析
linux·运维·服务器·rsync·同步数据
minglie17 小时前
谷歌浏览器搜索技巧
运维
脑子进水养啥鱼?7 小时前
Linux find 命令
linux·运维