cent os 7.5 离线安装gcc 升级openssh openssh-8.4p1
一.本机系统:
1 2 3 | [root@localhost test] # cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhost test] # |
二.安装gcc
1.你要下载一个CentOS7的系统镜像(https://www.centos.org/download/) 或者本地有之前的安装镜像的话解压,
解压出来会有一个Packages 这个文件,
2.在服务器上新建一个gcc文件夹,从Packages中挑选出需要安装gcc文件,下面8个文件就可以了
3.可以输入并执行以下命令,查看是否缺少gcc.环境安装包!
1 | rpm -qa|grep gcc |
4.执行gcc 文件夹下执行一下命令
1 | rpm -Uvh *.rpm --nodeps --force |
5.此时就安装成功,可以用 以下命令检查版本
1 2 3 4 5 6 7 8 | [root@localhost ~] # gcc -v 使用内建 specs。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper 目标:x86_64-redhat-linux 配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info -- with -bugurl=http: //bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux 线程模型:posix gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) |
二.. 升级openSSh 到 OpenSSH_8.4p1
1. 下载,需要下载以下三个文件,下载地址如下
1 2 3 4 5 | https: //ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz http: //www.zlib.net/zlib-1.2.11.tar.gz https: //www.openssl.org/source/openssl-1.1.1g.tar.gz |
2.解压升级包
1 2 3 | tar -zxvf zlib-1.2.11.tar.gz -C /usr/local tar -zxvf openssh-8.4p1.tar.gz -C /usr/local tar -zxvf openssl-1.1.1g.tar.gz -C /usr/local |
3.编译安装zlib
1 2 3 | cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib make && make install |
4.编译安装 openssl
1 2 3 4 5 | cd openssl-1.1.1g ./config --prefix=/usr/local/ssl -d shared make && make install echo '/usr/local/ssl/lib' >> /etc/ld.so.conf ldconfig -v |
5. 编译安装openssh
1 2 3 | cd openssh-8.4p1 ./configure --prefix=/usr/local/openssh -- with -zlib=/usr/local/zlib -- with -ssl-dir=/usr/local/ssl make && make install |
6.sshd_config文件修改
1 2 3 | echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config |
7. 备份原有文件,并将新的配置复制到指定目录
1 2 3 4 5 6 7 8 9 10 | mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config mv /usr/sbin/sshd /usr/sbin/sshd.bak cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd mv /usr/bin/ssh /usr/bin/ssh.bak cp /usr/local/openssh/bin/ssh /usr/bin/ssh mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub |
8.启动sshd
1 2 3 | [root@localhost ~] # systemctl daemon-reload [root@localhost ~] # service sshd restart Restarting sshd (via systemctl): [ 确定 ] |
9.查看版本ssh版本
1 2 | [root@localhost ~] # ssh -V OpenSSH_8.4p1, OpenSSL 1.1.1g 21 Apr 2020 |
10.漏洞修复
这个问题我在网上看到了解决办法连接如下 https://www.cnblogs.com/fantongxue/p/14604920.html,但是,按照那样操作之后,ssh 服务重启,系统重启, ps -ef| grep scp 发现其进程还在,不知道能不能修复,要是谁有新的解决办法,还请指教!
10.异常错误
问题:ssh 能连接上但是,显示的状态不对。
解决办法:
1>参照如下博主弄好了 https://www.hncldz.com/?p=625
cd openssh-8.6p1 cp -p contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd chkconfig --add sshd chkconfig sshd on service sshd restart systemctl status sshd
另外:博主中说的 http://blog.chinaunix.net/uid-28813320-id-5786956.html 我按这个办法试了下,状态正常了,但是在连接,连接不上了,
所以修改源码的方法慎用。
2>.如果上述办法还没有解决,执行如下操作
1 2 | mkdir /etc/ssh_bak/ mv /usr/lib/systemd/system/sshd.service /etc/ssh_bak/ |
原因:查询 systemctl status sshd 发现 /usr/lib/systemed/system/sshd.service
/usr/lib/systemd/system/sshd.service 与systemd不兼容
3>.启动
1 2 3 | systemctl daemon-reload systemctl restart sshd systemctl status sshd |
亲测,有效,若有不恰当处,还望及时提醒!!!
参考文案:
https://blog.csdn.net/White_Black007/article/details/81357234
https://www.cnblogs.com/tongchengbin/p/13809096.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业