百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

实测有效:OpenSSH 升级到 9.4p1

bigegpt 2024-08-10 12:05 6 浏览

升级 OpenSSL

1.查看 OpenSSL版本

openssl version

2.下载最新稳定版本 OpenSSL

wget https://www.openssl.org/source/openssl-3.1.2.tar.gz

3.解压缩,安装

#备份默认的openssl,防止升级失败恢复

mv /usr/bin/openssl /usr/bin/openssl.bak

mv /usr/include/openssl /usr/include/openssl.bak

## 解压文件

tar -zxvf openssl-3.1.2.tar.gz

cd openssl-3.1.2

## 编译,并指定编译参数

#如果此步骤报错,需要安装perl以及gcc包

./config --prefix=/usr/local/openssl

####################################################

问题描述 Can‘t locate IPC/Cmd.pm in

解决办法:

(1)安装perl-CPAN

yum install -y perl-CPAN

(2)进入perl shell中

perl -MCPAN -e shell

进入后第一步选yes

第二步选manual

第三步选yes

(3)出现以下cpan[1]> install IPC/Cmd.pm

后面就可以等着了,需要等几个小时,有点慢,耐心等待即可

####################################################

# 安装

make && make install

4.配置

## 将原来的openssl命令入口剪切至/tmp做备份

mv /usr/bin/openssl /tmp

## 软链接,将新版的openssl命令入口做一个软链接到/usr/bin目录下做替换

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

## 注意,软链接此处的源文件路径,我们可能不一致,是由我们在编译阶段传入的配置参数控制的,具体要 在/usr/local目录下寻找确定一下

ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3 ## 软链接

ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3 ## 软链接

## 再次查看openssl版本,可以看到更新成功

openssl version


安装Telnet

1.安装telnet服务端

yum -y install xinetd telnet-server

2.默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容。或者可以添加一个可以登录的用户,登录并su到root用户(建议采用此方法,保证系统安全)。此步骤可跳过!

允许root用户通过telnet登陆:

编辑/etc/pam.d/login,注释掉下面这行

vi /etc/pam.d/login

#把auth的限制去掉

auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

开启root用户远程登陆。此步骤可跳过!

vi /etc/pam.d/remote

auth required pam_securetty.so

3.重启telnet和xinetd服务 【telnet服务依赖于xinetd服务】

systemctl restart telnet.socket

systemctl restart xinetd

systemctl enable xinetd

systemctl enable telnet.socket

4.将 23端口(系统默认23为telnet端口)添加到防火墙允许的端口的列表中。

firewall-cmd --zone=public --add-port=23/tcp --permanent

firewall-cmd --zone=public --add-port=22/tcp --permanent

firewall-cmd --reload

5.尝试用telnet命令登录:telnet 192.168.0.15 23 若出现Login incorrect

#执行tail /var/log/secure,查看登录日志:

Sep 7 16:03:10 localhost login: pam_securetty(remote:auth): access denied: tty 'pts/1' is not secure !


#编辑 /etc/securetty

vi /etc/securetty

把pts/1加入到securetty文件中,保存并退出,重启telnet服务

vi /etc/pam.d/login

将auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so注释,即在代码前面加上#

注释后输入:wq保存,并重启telnet服务


升级OpenSSH

1.关闭SElinux

#检查是否关闭:

getenforce

#如果未关闭,关闭之

setenforce 0

#上面只是临时关闭了,重启后不生效。下面改配置文件,使永久生效。

vi /etc/selinux/config

#修改:

  SELINUX=disabled

#保存退出。

2.安装相关依赖包

yum -y install gcc make perl zlib zlib-devel pam pam-devel

# 安装完毕后执行下面命令,确保所有依赖包正常安装

rpm -qa | egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"

3.升级openSSH(注意从这步开始,通过Telnet登录到服务器,务必)

#停止ssh服务

systemctl stop sshd


#下载openssh-9.4p1.tar.gz

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz

#备份ssh配置文件

cp -r /etc/ssh /etc/ssh.old

# 查看系统原有openssh包

rpm -qa | grep openssh

#删除旧版本

rpm -e --nodeps `rpm -qa | grep openssh`

#解压新版本

tar -zxvf openssh-9.4p1.tar.gz

cd openssh-9.4p1

# 编译配置 这里请注意--with-ssl-dir 是你openssl安装的目录

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening

#编译安装

make && make install

#调整文件权限

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

#复制配置文件

cp -a contrib/redhat/sshd.init /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

#还原 原配置文件

mv ../sshd.backup /etc/pam.d/sshd

mv ../sshd_config.backup /etc/ssh/sshd_config


vi /etc/ssh/sshd_config

Port 22

ListenAddress 0.0.0.0

#UsePAM no

PasswordAuthentication yes

PermitEmptyPasswords no

HostbasedAuthentication no

IgnoreRhosts yes

PermitRootLogin no


#添加自启动

chkconfig --add sshd

chkconfig sshd on

#重启服务

systemctl restart sshd

# 查看版本, 验证结果 - 显示9.4p1即成功

ssh -V


centos7 系统手动安装openssh后使用systemctl命令无法管理sshd服务问题解决

解决方法

以下是我当前情况的解决方案,不代表所有类似情况都适用。

将源码安装包中 contrib/redhat/sshd.init 文件复制到 /etc/init.d/sshd 下并添加可执行权限。

cp -a contrib/redhat/sshd.init /etc/init.d/sshd

chmod u+x /etc/init.d/sshd

ln /usr/local/openssh/sbin/sshd /usr/sbin/sshd

ln /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

这时,/run/systemd/generator.late/ 目录下会产生一个名为 sshd.init.service的 systemd 服务配置文件。

将这个文件复制到 systemd 的服务配置文件目录下

cp /run/systemd/generator.late/sshd.init.service /usr/lib/systemd/system/sshd.service

chmod +x /usr/lib/systemd/system/sshd.service

这时再通过systemctl命令操作sshd服务就正常了。


sshd -V

OpenSSH_9.4, OpenSSL 3.1.2 1 Aug 2023

相关推荐

10w qps缓存数据库——Redis(redis缓存调优)

一、Redis数据库介绍:Redis:非关系型缓存数据库nosql:非关系型数据库没有表,没有表与表之间的关系,更不存在外键存储数据的形式为key:values的形式c语言写的服务(监听端口),用来存...

Redis系列专题4--Redis配置参数详解

本文基于windowsX64,3.2.100版本讲解,不同版本默认配置参数不同在Redis中,Redis的根目录中有一个配置文件(redis.conf,windows下为redis.windows....

开源一夏 | 23 张图,4500 字从入门到精通解释 Redis

redis是目前出场率最高的NoSQL数据库,同时也是一个开源的数据结构存储系统,在缓存、数据库、消息处理等场景使用的非常多,本文瑞哥就带着大家用一篇文章入门这个强大的开源数据库——Redis。...

redis的简单与集群搭建(redis建立集群)

Redis是什么?是开源免费用c语言编写的单线程高性能的(key-value形式)内存数据库,基于内存运行并支持持久化的nosql数据库作用主要用来做缓存,单不仅仅是做缓存,比如:redis的计数器生...

推荐几个好用Redis图形化客户端工具

RedisPlushttps://gitee.com/MaxBill/RedisPlusRedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows、Linux...

关于Redis在windows上运行及fork函数问题

Redis在将数据库进行持久化操作时,需要fork一个进程,但是windows并不支持fork,导致在持久化操作期间,Redis必须阻塞所有的客户端直至持久化操作完成。微软的一些工程师花费时间在解决在...

你必须懂的Redis十大应用场景(redis常见应用场景)

Redis作为一款高性能的键值存储数据库,在互联网业务中有着广泛的应用。今天,我们就来详细盘点一下Redis的十大常用业务场景,并附上Golang的示例代码和简图,帮助大家更好地理解和应用Redis。...

极简Redis配置(redis的配置)

一、概述Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf,linux下的是redis.conf)你可以通过C...

什么是redis,怎么启动及如何压测

从今天起咱们一起来学习一下关于“redis监控与调优”的内容。一、Redis介绍Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。...

一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI

介绍P3XRedisUI这是一个非常实用的RedisGUI,提供响应式WebUI访问或作为桌面应用程序使用,桌面端是跨平台的,而且完美支持中文界面。Githubhttps://github....

windows系统的服务器快速部署java项目环境地址

1、mysql:https://dev.mysql.com/downloads/mysql/(msi安装包)2、redis:https://github.com/tporadowski/redis/r...

window11 下 redis 下载与安装(windows安装redis客户端)

#热爱编程是一种怎样的体验#window11下redis下载与安装1)各个版本redis下载(windows)https://github.com/MicrosoftArchive/r...

一款轻量级的Redis客户端工具,贼好用!

使用命令行来操作Redis是一件非常麻烦的事情,我们一般会选用客户端工具来操作Redis。今天给大家分享一款好用的Redis客户端工具TinyRDM,它的界面清新又优雅,希望对大家有所帮助!简介Ti...

一个.NET开发且功能强大的Windows远程控制系统

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍SiMayRemoteMonitorOS是一个基于Windows的远程控制系统,完...

Redis客户端工具详解(4款主流工具)

大家好,我是mikechen。Redis是大型架构的基石,也是大厂最爱考察内容,今天就给大家重点详解4款Redis工具@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集...