Centos7.9 制作openssh9.2p2 rpm升级包和升级实战
一、背景说明
Centos7.9 默认安装的openssh 版本为7.4p1,经绿盟扫描,存在高危漏洞,需要升级到最新。
官网只提供编译安装包,为了方便升级,先通过编译安装包,制作rpm包,并进行升级
如下为做好的rpm升级包,可直接下载使用:
openssh 9.3p2 for Centos7.9版本,及升级指引
1.1 系统版本查看 cat /etc/redhat-release
[root@mysql8test ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@mysql8test ~]#
二、rpm包制作
2.1、安装制作的工具
##配置yum源(省略)##安装依赖包
[root@mysql8test ~]# yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel libXt-devel gtk2-devel make perl -y##安装imake
[root@mysql8test ~]# yum install -y imake
2.2 创建编译目录
mkdir -p /root/rpmbuildcd /root/rpmbuildmkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS[root@mysql8test ~]# mkdir -p /root/rpmbuild
[root@mysql8test ~]# cd /root/rpmbuild
[root@mysql8test rpmbuild]# mkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
[root@mysql8test rpmbuild]#
2.3 下载openssh9.3p2和x11-ssh-askpass-1.2.4.1.tar.gz
##将下载的文件放入SOURCES文件夹下
cd /root/rpmbuild/SOURCES/##下载openssh9.3p2
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz[root@mysql8test SOURCES]# wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
--2023-08-06 20:12:24-- http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
Resolving ftp.openbsd.org (ftp.openbsd.org)... 199.185.178.81
Connecting to ftp.openbsd.org (ftp.openbsd.org)|199.185.178.81|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1835850 (1.8M) [text/plain]
Saving to: ‘openssh-9.3p2.tar.gz’100%[=====================================================================================================>] 1,835,850 550KB/s in 3.3s 2023-08-06 20:12:28 (550 KB/s) - ‘openssh-9.3p2.tar.gz’ saved [1835850/1835850][root@mysql8test SOURCES]###下载x11-ssh-askpass-1.2.4.1.tar.gz
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz[root@mysql8test SOURCES]# wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz
--2023-08-06 20:13:56-- https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz
Resolving src.fedoraproject.org (src.fedoraproject.org)... 38.145.60.20, 38.145.60.21
Connecting to src.fedoraproject.org (src.fedoraproject.org)|38.145.60.20|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/ [following]
--2023-08-06 20:13:58-- http://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/
Connecting to src.fedoraproject.org (src.fedoraproject.org)|38.145.60.20|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/ [following]
--2023-08-06 20:13:59-- https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/
Connecting to src.fedoraproject.org (src.fedoraproject.org)|38.145.60.20|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1223 (1.2K) [text/html]
Saving to: ‘x11-ssh-askpass-1.2.4.1.tar.gz’100%[=====================================================================================================>] 1,223 --.-K/s in 0s 2023-08-06 20:14:00 (81.0 MB/s) - ‘x11-ssh-askpass-1.2.4.1.tar.gz’ saved [1223/1223][root@mysql8test SOURCES]#
2.4 修改openssh.spec配置
[root@mysql8test SOURCES]# cd /root/rpmbuild/SOURCES/
[root@mysql8test SOURCES]# tar -zxf openssh-9.3p2.tar.gz ##编辑编译配置文件
cp openssh-9.3p2/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
cd /root/rpmbuild/SPECS/##结果:
[root@mysql8test SOURCES]# cp openssh-9.3p2/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
[root@mysql8test SOURCES]# cd /root/rpmbuild/SPECS/
[root@mysql8test SPECS]# ls -l
total 32
-rw-r--r--. 1 root root 30082 Aug 6 20:19 openssh.spec
[root@mysql8test SPECS]# ##不生成askpass包
sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec
sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.speccat /root/rpmbuild/SPECS/openssh.spec | grep no_gnome_askpass
cat /root/rpmbuild/SPECS/openssh.spec | grep no_x11_askpass##修改openssl-devel的报错
sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec##修改PreReq的报错
sed -i '/PreReq:/s/^/#/' openssh.spec##.解决Obsoletes报错
sed -i '/Obsoletes:/s/^/#/' openssh.speccat /root/rpmbuild/SPECS/openssh.spec | grep Obsoletes
2.5 编译源码包,制作成rpm包
cd /root/rpmbuild/SPECS/
rpmbuild -ba openssh.spec
提示
...
Processing files: openssh-server-9.3p2-1.el7.x86_64
Provides: config(openssh-server) = 9.3p2-1.el7 openssh-server = 9.3p2-1.el7 openssh-server(x86-64) = 9.3p2-1.el7
Requires(interp): /bin/sh /bin/sh /bin/sh /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(pre): /bin/sh
Requires(post): /bin/sh
Requires(preun): /bin/sh
Requires(postun): /bin/sh
Requires: /bin/bash libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.16)(64bit) libc.so.6(GLIBC_2.17)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.6)(64bit) libc.so.6(GLIBC_2.8)(64bit) libcom_err.so.2()(64bit) libcrypt.so.1()(64bit) libcrypt.so.1(GLIBC_2.2.5)(64bit) libcrypto.so.10()(64bit) libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) libcrypto.so.10(OPENSSL_1.0.2)(64bit) libcrypto.so.10(libcrypto.so.10)(64bit) libdl.so.2()(64bit) libgssapi_krb5.so.2()(64bit) libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit) libk5crypto.so.3()(64bit) libkrb5.so.3()(64bit) libkrb5.so.3(krb5_3_MIT)(64bit) libpam.so.0()(64bit) libpam.so.0(LIBPAM_1.0)(64bit) libresolv.so.2()(64bit) libutil.so.1()(64bit) libutil.so.1(GLIBC_2.2.5)(64bit) libz.so.1()(64bit) rtld(GNU_HASH)
Processing files: openssh-debuginfo-9.3p2-1.el7.x86_64
Provides: openssh-debuginfo = 9.3p2-1.el7 openssh-debuginfo(x86-64) = 9.3p2-1.el7
Requires(rpmlib): rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/openssh-9.3p2-1.el7.x86_64
Wrote: /root/rpmbuild/SRPMS/openssh-9.3p2-1.el7.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-9.3p2-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-clients-9.3p2-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-server-9.3p2-1.el7.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-debuginfo-9.3p2-1.el7.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.FtwsQ7
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd openssh-9.3p2
+ rm -rf /root/rpmbuild/BUILDROOT/openssh-9.3p2-1.el7.x86_64
+ exit 0
[root@mysql8test SPECS]#
2.5 查看生成的rpm包,并打包
##编译完成后的软件在,debug的包不用下载安装
[root@mysql8test SPECS]# ls -lrth /root/rpmbuild/RPMS/x86_64/
total 4.9M
-rw-r--r--. 1 root root 634K Aug 6 20:27 openssh-9.3p2-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 627K Aug 6 20:27 openssh-clients-9.3p2-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 462K Aug 6 20:27 openssh-server-9.3p2-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 3.2M Aug 6 20:27 openssh-debuginfo-9.3p2-1.el7.x86_64.rpm
[root@mysql8test SPECS]# ##对rpm进行打包
[root@mysql8test x86_64]# tar -zcvf /root/openssh-9.3p2_rpm_for_centos7.9.tar.gz *.rpm
openssh-9.3p2-1.el7.x86_64.rpm
openssh-clients-9.3p2-1.el7.x86_64.rpm
openssh-debuginfo-9.3p2-1.el7.x86_64.rpm
openssh-server-9.3p2-1.el7.x86_64.rpm
三、centos7.9 从openssh7.4p1升级到openssh9.3p2
##升级之前查看版本
[root@mysql8test x86_64]# rpm -qa|grep openssh
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
[root@mysql8test x86_64]#
[root@mysql8test x86_64]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@mysql8test x86_64]# ##升级前备份 /etc/pam.d/sshdcp -r /etc/ssh /etc/ssh.bak
cp -r /etc/pam.d /etc/pam.d.bak
cp /etc/pam.d/sshd /root/sshd验证openssh是否升级成功##升级opensshyum localinstall openssh-9.3p2-1.el7.x86_64.rpm openssh-clients-9.3p2-1.el7.x86_64.rpm openssh-server-9.3p2-1.el7.x86_64.rpm -y[root@mysql8test x86_64]# yum localinstall openssh-9.3p2-1.el7.x86_64.rpm openssh-clients-9.3p2-1.el7.x86_64.rpm openssh-server-9.3p2-1.el7.x86_64.rpm -y
Loaded plugins: fastestmirror
Examining openssh-9.3p2-1.el7.x86_64.rpm: openssh-9.3p2-1.el7.x86_64
Marking openssh-9.3p2-1.el7.x86_64.rpm as an update to openssh-7.4p1-21.el7.x86_64
Examining openssh-clients-9.3p2-1.el7.x86_64.rpm: openssh-clients-9.3p2-1.el7.x86_64
Marking openssh-clients-9.3p2-1.el7.x86_64.rpm as an update to openssh-clients-7.4p1-21.el7.x86_64
Examining openssh-server-9.3p2-1.el7.x86_64.rpm: openssh-server-9.3p2-1.el7.x86_64
Marking openssh-server-9.3p2-1.el7.x86_64.rpm as an update to openssh-server-7.4p1-21.el7.x86_64
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> Running transaction check
---> Package openssh.x86_64 0:7.4p1-21.el7 will be updated
---> Package openssh.x86_64 0:9.3p2-1.el7 will be an update
---> Package openssh-clients.x86_64 0:7.4p1-21.el7 will be updated
---> Package openssh-clients.x86_64 0:9.3p2-1.el7 will be an update
---> Package openssh-server.x86_64 0:7.4p1-21.el7 will be updated
---> Package openssh-server.x86_64 0:9.3p2-1.el7 will be an update
--> Finished Dependency ResolutionDependencies Resolved===============================================================================================================================================Package Arch Version Repository Size
===============================================================================================================================================
Updating:openssh x86_64 9.3p2-1.el7 /openssh-9.3p2-1.el7.x86_64 2.9 Mopenssh-clients x86_64 9.3p2-1.el7 /openssh-clients-9.3p2-1.el7.x86_64 2.4 Mopenssh-server x86_64 9.3p2-1.el7 /openssh-server-9.3p2-1.el7.x86_64 1.1 MTransaction Summary
===============================================================================================================================================
Upgrade 3 PackagesTotal size: 6.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionUpdating : openssh-9.3p2-1.el7.x86_64 1/6 Updating : openssh-server-9.3p2-1.el7.x86_64 2/6 Updating : openssh-clients-9.3p2-1.el7.x86_64 3/6 Cleanup : openssh-clients-7.4p1-21.el7.x86_64 4/6 Cleanup : openssh-server-7.4p1-21.el7.x86_64 5/6 Cleanup : openssh-7.4p1-21.el7.x86_64 6/6 Verifying : openssh-server-9.3p2-1.el7.x86_64 1/6 Verifying : openssh-9.3p2-1.el7.x86_64 2/6 Verifying : openssh-clients-9.3p2-1.el7.x86_64 3/6 Verifying : openssh-clients-7.4p1-21.el7.x86_64 4/6 Verifying : openssh-7.4p1-21.el7.x86_64 5/6 Verifying : openssh-server-7.4p1-21.el7.x86_64 6/6 Updated:openssh.x86_64 0:9.3p2-1.el7 openssh-clients.x86_64 0:9.3p2-1.el7 openssh-server.x86_64 0:9.3p2-1.el7 Complete!
[root@mysql8test x86_64]#
[root@mysql8test x86_64]# ssh -V
OpenSSH_9.3p2, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@mysql8test x86_64]###重启sshd出现报错
[root@mysql8test x86_64]# systemctl restart sshd
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
[root@mysql8test x86_64]# systemctl status sshd.service
● sshd.service - SYSV: OpenSSH server daemonLoaded: loaded (/etc/rc.d/init.d/sshd; bad; vendor preset: enabled)Active: failed (Result: exit-code) since Sun 2023-08-06 20:39:07 CST; 7s agoDocs: man:systemd-sysv-generator(8)Process: 32628 ExecStop=/etc/rc.d/init.d/sshd stop (code=exited, status=0/SUCCESS)Process: 32668 ExecStart=/etc/rc.d/init.d/sshd start (code=exited, status=1/FAILURE)Main PID: 1029 (code=exited, status=0/SUCCESS)Aug 06 20:39:07 mysql8test sshd[32668]: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Aug 06 20:39:07 mysql8test sshd[32668]: Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open.
Aug 06 20:39:07 mysql8test sshd[32668]: It is required that your private key files are NOT accessible by others.
Aug 06 20:39:07 mysql8test sshd[32668]: This private key will be ignored.
Aug 06 20:39:07 mysql8test sshd[32668]: sshd: no hostkeys available -- exiting.
Aug 06 20:39:07 mysql8test sshd[32668]: [FAILED]
Aug 06 20:39:07 mysql8test systemd[1]: sshd.service: control process exited, code=exited status=1
Aug 06 20:39:07 mysql8test systemd[1]: Failed to start SYSV: OpenSSH server daemon.
Aug 06 20:39:07 mysql8test systemd[1]: Unit sshd.service entered failed state.
Aug 06 20:39:07 mysql8test systemd[1]: sshd.service failed.
[root@mysql8test x86_64]# ##修改文件权限chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key[root@mysql8test x86_64]# chmod 600 /etc/ssh/ssh_host_rsa_key
[root@mysql8test x86_64]# chmod 600 /etc/ssh/ssh_host_ecdsa_key
[root@mysql8test x86_64]# chmod 600 /etc/ssh/ssh_host_ed25519_key##再次重启sshd,正常
[root@mysql8test x86_64]# systemctl restart sshd
[root@mysql8test x86_64]# systemctl status sshd.service
● sshd.service - SYSV: OpenSSH server daemonLoaded: loaded (/etc/rc.d/init.d/sshd; bad; vendor preset: enabled)Active: active (running) since Sun 2023-08-06 20:40:10 CST; 3s agoDocs: man:systemd-sysv-generator(8)Process: 32628 ExecStop=/etc/rc.d/init.d/sshd stop (code=exited, status=0/SUCCESS)Process: 32689 ExecStart=/etc/rc.d/init.d/sshd start (code=exited, status=0/SUCCESS)Main PID: 32697 (sshd)CGroup: /system.slice/sshd.service└─32697 sshd: /usr/sbin/sshd [listener] 0 of 10-100 startupsAug 06 20:40:10 mysql8test systemd[1]: Starting SYSV: OpenSSH server daemon...
Aug 06 20:40:10 mysql8test sshd[32689]: /sbin/restorecon: lstat(/etc/ssh/ssh_host_dsa_key.pub) failed: No such file or directory
Aug 06 20:40:10 mysql8test sshd[32697]: Server listening on 0.0.0.0 port 22.
Aug 06 20:40:10 mysql8test sshd[32697]: Server listening on :: port 22.
Aug 06 20:40:10 mysql8test sshd[32689]: Starting sshd:[ OK ]
Aug 06 20:40:10 mysql8test systemd[1]: Started SYSV: OpenSSH server daemon.
[root@mysql8test x86_64]#
四、Centos7.9 openssh 9.3p1升级到openssh 9.3p2
[root@ucsp-rancher-03 openssh9.3p2]# ssh -V
OpenSSH_9.3p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@ucsp-rancher-03 openssh9.3p2]#
[root@ucsp-rancher-03 openssh9.3p2]# cp -r /etc/ssh /etc/ssh.bak
cp -r /etc/pam.d /etc/pam.d.bak
[root@ucsp-rancher-03 openssh9.3p2]# cp -r /etc/pam.d /etc/pam.d.bak
cp /etc/pam.d/sshd /root/sshd
[root@ucsp-rancher-03 openssh9.3p2]# cp /etc/pam.d/sshd /root/sshd
[root@ucsp-rancher-03 openssh9.3p2]#
[root@ucsp-rancher-03 openssh9.3p2]# yum localinstall openssh-9.3p2-1.el7.x86_64.rpm openssh-clients-9.3p2-1.el7.x86_64.rpm openssh-server-9.3p2-1.el7.x86_64.rpm -y
已加载插件:fastestmirror, langpacks
正在检查 openssh-9.3p2-1.el7.x86_64.rpm: openssh-9.3p2-1.el7.x86_64
openssh-9.3p2-1.el7.x86_64.rpm 将作为 openssh-9.3p1-1.el7.x86_64 的更新
正在检查 openssh-clients-9.3p2-1.el7.x86_64.rpm: openssh-clients-9.3p2-1.el7.x86_64
openssh-clients-9.3p2-1.el7.x86_64.rpm 将作为 openssh-clients-9.3p1-1.el7.x86_64 的更新
正在检查 openssh-server-9.3p2-1.el7.x86_64.rpm: openssh-server-9.3p2-1.el7.x86_64
openssh-server-9.3p2-1.el7.x86_64.rpm 将作为 openssh-server-9.3p1-1.el7.x86_64 的更新
正在解决依赖关系
--> 正在检查事务
---> 软件包 openssh.x86_64.0.9.3p1-1.el7 将被 升级
---> 软件包 openssh.x86_64.0.9.3p2-1.el7 将被 更新
---> 软件包 openssh-clients.x86_64.0.9.3p1-1.el7 将被 升级
---> 软件包 openssh-clients.x86_64.0.9.3p2-1.el7 将被 更新
---> 软件包 openssh-server.x86_64.0.9.3p1-1.el7 将被 升级
---> 软件包 openssh-server.x86_64.0.9.3p2-1.el7 将被 更新
--> 解决依赖关系完成
base/7/x86_64 | 3.6 kB 00:00:00
centosplus/7/x86_64 | 2.9 kB 00:00:00
epel/7/x86_64 | 4.7 kB 00:00:00
extras/7/x86_64 | 2.9 kB 00:00:00
updates/7/x86_64 | 2.9 kB 00:00:00 依赖关系解决======================================================================================================================================================================================================================Package 架构 版本 源 大小
======================================================================================================================================================================================================================
正在更新:openssh x86_64 9.3p2-1.el7 /openssh-9.3p2-1.el7.x86_64 2.9 Mopenssh-clients x86_64 9.3p2-1.el7 /openssh-clients-9.3p2-1.el7.x86_64 2.4 Mopenssh-server x86_64 9.3p2-1.el7 /openssh-server-9.3p2-1.el7.x86_64 1.1 M事务概要
======================================================================================================================================================================================================================
升级 3 软件包总计:6.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在更新 : openssh-9.3p2-1.el7.x86_64 1/6 正在更新 : openssh-server-9.3p2-1.el7.x86_64 2/6 正在更新 : openssh-clients-9.3p2-1.el7.x86_64 3/6 清理 : openssh-clients-9.3p1-1.el7.x86_64 4/6 清理 : openssh-server-9.3p1-1.el7.x86_64 5/6 清理 : openssh-9.3p1-1.el7.x86_64 6/6 验证中 : openssh-server-9.3p2-1.el7.x86_64 1/6 验证中 : openssh-9.3p2-1.el7.x86_64 2/6 验证中 : openssh-clients-9.3p2-1.el7.x86_64 3/6 验证中 : openssh-9.3p1-1.el7.x86_64 4/6 验证中 : openssh-clients-9.3p1-1.el7.x86_64 5/6 验证中 : openssh-server-9.3p1-1.el7.x86_64 6/6 更新完毕:openssh.x86_64 0:9.3p2-1.el7 openssh-clients.x86_64 0:9.3p2-1.el7 openssh-server.x86_64 0:9.3p2-1.el7 完毕!
[root@ucsp-rancher-03 openssh9.3p2]# ssh -V
OpenSSH_9.3p2, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@ucsp-rancher-03 openssh9.3p2]# systemctl restart sshd
[root@ucsp-rancher-03 openssh9.3p2]#
相关文章:
Centos7.9 制作openssh9.2p2 rpm升级包和升级实战
一、背景说明 Centos7.9 默认安装的openssh 版本为7.4p1,经绿盟扫描,存在高危漏洞,需要升级到最新。 官网只提供编译安装包,为了方便升级,先通过编译安装包,制作rpm包,并进行升级 如下为做好…...

JavaScript学习(3)
Web API 是开发人员的梦想。 它可以扩展浏览器的功能它可以极大简化复杂的功能它可以为复杂的代码提供简单的语法 什么是 Web API? API 指的是应用程序编程接口(Application Programming Interface)。 Web API 是 Web 的应用程序编程接口…...
2023华为OD机试真题Java实现【寻找最大价值的矿堆/深度优先搜索】
前言 本题使用Java实现,如果需要Python代码,请点击以下链接 点我 题目 我们规定,0表示空地,1表示银矿、2表示金矿,矿堆表示由相邻的金矿或银矿连接形成的地图。 银矿价值是1 ,金矿价值是2 ,你的目标是找出地图中最大价值的矿堆,并且输出该矿堆的价值 示例1 输入:…...

MyCat概述
1.MyCat概述 MyCat是阿里巴巴的产品,他是开源的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用mycat,对于开发人员来说根本感觉不到mycat的存在。 MyCat下载地址:http://dl.mycat.org.cn/ MyCat官网:http:/…...

【LeetCode】【数据结构】单链表OJ常见题型(一)
👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》 🌝每一个不曾起舞的日子,都是对生命的辜负。 目录 前言: 【LeetCode】203.移除链表元素 【LeetCo…...

QGraphicsView实现简易地图3『局部加载-地图缩放』
前文链接:QGraphicsView实现简易地图2『瓦片经纬度』 第一篇文章提到过,当地图层级较大时,暴力全加载地图会造成程序卡顿,因此需要实现地图的局部加载。 实现思路:以地图窗口(以下称为视口)为地…...

bash的特性(二)IO重定向与管道
bash的I/O重定向及管道 一、概述 在shell中,最常使用的fd(file descriptor)有三个,标准输入,标准输出,错误输出。进程用文件描述符来管理打开的文件。 名称 文件描述符 标准输入(stdin) 0 键盘,也可以…...

elb 直接配置到后端服务器组
出现上图报错的原因是,前面elb配置了https证书,后端的nginx也配置了证书,导致冲突。 需要修改后端的nginx配置文件,将证书配置注释掉。 如果出现健康检查异常,需要在对应服务器的安全组上配置elb所在的网段的访问权限…...

安卓:BottomNavigationBar——底部导航栏控件
目录 一、BottomNavigationBar介绍 二、BottomNavigationBar的常用方法及其常用类 (一)、常用方法 1. 添加菜单项 2. 移除菜单项 3. 设置选中监听器 4. 设置当前选中项 5. 设置徽章 6. 样式和颜色定制 7. 动画效果 8. 隐藏底部导航栏。 9、设…...
十、用 ChatGPT 辅助写文章
目录 一、实验介绍 二、背景 三、ChatGPT 写作方式 3.1 传统写作方式 3.2 ChatGPT 写作方式...

计算机毕设 深度学习猫狗分类 - python opencv cnn
文章目录 0 前言1 课题背景2 使用CNN进行猫狗分类3 数据集处理4 神经网络的编写5 Tensorflow计算图的构建6 模型的训练和测试7 预测效果8 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往…...

60多行代码仿制B站首页一个好看的卡片效果
文章目录 1、为啥是这个?2、仿制效果3、实现思路4、代码5、查看B站如何实现 1、为啥是这个? 看到Bilibili首页的一个卡片,看着效果很不错,给人很舒适的感觉。一琢磨貌似也不难,甚至只需要一层 div 就可以实现主要框架…...

Redis内网主从节点搭建
Redis内网主从节点搭建 1、文件上传2、服务安装3、服务启动4、配置主从复制 1、文件上传 内网环境手动上传gcc-c、redis.tar文件 2、服务安装 # 解压 unzip gcc-c.zip unzip gcc_rpm.zip tar -zxvf redis-6.2.13.tar.gz# 安装 cd gcc_rpm/ rpm -ivh *.rpm --nodeps --force…...

ESP32-C2开发板 ESP8684芯片 兼容ESP32-C3开发
C2是一个芯片采用4毫米x 4毫米封装,与272 kB内存。它运行框架,例如ESP-Jumpstart和ESP造雨者,同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统,受到了全球用户的信赖。它由支持Espressif以及所有…...

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结
近日,Zebec Protocol 创始人 Sam 作为嘉宾,与社区进行了以“Zebec 生态发展”为主题的 AMA 对话。Sam 在线上访谈上对 Zebec 路线图、Zebec 质押、NautChain通证进行了解读,并对 Zebec 的进展、生态建设的愿景进行了展望。本文将对本次 AMA 进…...

一台电脑给另外一台电脑共享网络
这里写自定义目录标题 有网的电脑上操作一根网线连接两台电脑没网的电脑上 有网的电脑上操作 右键->属性->共享 如同选择以太网,勾选。确认。 一根网线连接两台电脑 没网的电脑上 没网的电脑为mips&麒麟V10 新增个网络配置ww,设置如下。 …...

AAA 认证
概念 AAA是认证(Authentication)、授权(Authorization)和计费(Accounting)的简称,是网络安全中进行访问控制的一种安全管理机制,提供认证、授权和计费三种安全服务。 AAA 常见架构...

jvm-程序计数器
1、是什么 4 学习路线 类加载器 内存结构方法区 类堆 对象虚拟机栈程序计数器本地方法栈 执行引擎解释器编译器 热点代码 5 程序计数器–作用 java源代码编译蛏二进制字节码 jvm指令。 对所有平台保持一致性。记住下一条jvm指令的执行地址。寄存器,cpu中读取速度…...

NestJs Debug配置文件
(事缓则圆,人缓则安,语迟则贵,虎行似病,鹰立似睡。清俞万春《荡寇志》) {"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": &quo…...
题解 | #C.idol!!# 2023牛客暑期多校6
C.idol!! 数学 题目大意 正整数 n n n 的双阶乘 n ! ! n!! n!! 表示不超过 n n n 且与 n n n 有相同奇偶性的所有正整数乘积 求对于给定 n n n , ∏ i 1 n i ! ! \prod\limits_{i1}^n i!! i1∏ni!! 的后缀 0 0 0 个数 解题思路 根据双阶乘的性质&…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...