CentOS 7 下升级 OpenSSH 7.4p1 到 OpenSSH 8.4p1

简介: CentOS 7 下升级 OpenSSH 7.4p1 到 OpenSSH 8.4p1

一、环境介绍

`openssh版本`
[root@localhost ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
`linux发行版和内核`
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64

二、安装配置telnet

2.1、安装telnet-server

[root@localhost ~]# yum -y install xinetd telnet-server

2.2、配置telnet

`先看一下xinetd.d目录下是否有telnet文件`
[root@localhost ~]# ll /etc/xinetd.d/telnet
ls: cannot access /etc/xinetd.d/telnet: No such file or directory
`如果有,则将文件里面的disable = no改成disable = yes`
`如果没有,就进行下面的操作`
[root@localhost ~]# cat > /etc/xinetd.d/telnet <<EOF
service telnet
{
    disable = yes
    flags       = REUSE
    socket_type = stream
    wait        = no
    user        = root
    server      = /usr/sbin/in.telnetd
    log_on_failure  += USERID
}
EOF

2.3、配置telnet登录的终端类型

[root@localhost ~]# cat >> /etc/securetty <<EOF
pts/0
pts/1
pts/2
pts/3
EOF

2.4、启动telnet服务

[root@localhost ~]# systemctl enable xinetd --now
[root@localhost ~]# systemctl enable telnet.socket --now
[root@localhost ~]# ss -nltp | grep 23
LISTEN     0      128         :::23                      :::*                   users:(("systemd",pid=1,fd=46))
`23端口起来了,表示telnet服务正常运行`

三、切换登录方式为telnet

  • 后面的操作都是在telnet链接的方式下进行,避免ssh中断导致升级失败
  • 以telnet方式登录的时候,注意选择协议和端口,协议为telnet,端口为23

四、开始升级OpenSSH

4.1、下载升级所需依赖包

[root@localhost ~]# yum -y install gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel

4.2、下载OpenSSL和OpenSSH

[root@localhost ~]# wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz
[root@localhost ~]# wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz
[root@localhost ~]# tar xf openssl-1.1.1i.tar.gz
[root@localhost ~]# tar xf openssh-8.4p1.tar.gz

4.3、编译安装OpenSSL

`开始之前,先备份一下原有的OpenSSL文件`
[root@localhost ~]# mv /usr/bin/openssl{,.bak}
[root@localhost ~]# mv /usr/include/openssl{,.bak}
[root@localhost ~]# cd openssl-1.1.1i/
[root@localhost openssl-1.1.1i]# ./config shared && make && make install
`编译完成后,可以在/usr/local目录下找到openssl的二进制文件和目录`
[root@localhost ~]# ll /usr/local/bin/openssl
-rwxr-xr-x 1 root root 749136 Jan 14 14:25 /usr/local/bin/openssl
[root@localhost ~]# ll -d /usr/local/include/openssl/
drwxr-xr-x 2 root root 4096 Jan 14 14:25 /usr/local/include/openssl/
`建立软连接`
[root@localhost ~]# ln -s /usr/local/bin/openssl /usr/bin/openssl
[root@localhost ~]# ln -s /usr/local/include/openssl/ /usr/include/openssl
[root@localhost ~]# ll /usr/bin/openssl
lrwxrwxrwx 1 root root 22 Jan 14 14:32 /usr/bin/openssl -> /usr/local/bin/openssl
[root@localhost ~]# ll -d /usr/include/openssl
lrwxrwxrwx 1 root root 27 Jan 14 14:33 /usr/include/openssl -> /usr/local/include/openssl/
`重新加载配置,验证openssl版本`
[root@localhost ~]# echo "/usr/local/lib64" >> /etc/ld.so.conf
[root@localhost ~]# /sbin/ldconfig
[root@localhost ~]# openssl version
OpenSSL 1.1.1i  8 Dec 2020
4.3.1、可能会有的一些报错和解决方法
[root@localhost ~]# openssl version
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
"这是因为libssl.so.1.1文件找不到,执行find / -name 'libssl.so.1.1',将/etc/ld.so.conf里面的lib64改成find出来的路径即可"
[root@localhost ~]# find / -name "openssl"
"编译完,可以用上面的find命令看一下openssl所在的路径,以及include/openssl所在的路径"

4.4、编译安装OpenSSH

`备份原有的ssh目录`
[root@localhost ~]# mv /etc/ssh{,.bak}
[root@localhost ~]# mkdir /usr/local/openssh
[root@localhost ~]# cd openssh-8.4p1/
[root@localhost openssh-8.4p1]# ./configure --prefix=/usr/local/openssh \
--sysconfdir=/etc/ssh \
--with-openssl-includes=/usr/local/include \
--with-ssl-dir=/usr/local/lib64 \
--with-zlib \
--with-md5-passwords \
--with-pam  && \
make && \
make install
4.4.1、配置sshd_config文件
[root@localhost ~]# echo "UseDNS no" >> /etc/ssh/sshd_config
[root@localhost ~]# echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
[root@localhost ~]# echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
[root@localhost ~]# echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
`如果是图形化界面,需要x11的话,需要配置如下`
[root@localhost ~]# echo "X11Forwarding yes" >> /etc/ssh/sshd_config
[root@localhost ~]# echo "X11UseLocalhost no" >> /etc/ssh/sshd_config                
[root@localhost ~]# echo "XAuthLocation /usr/bin/xauth" >> /etc/ssh/sshd_config
4.4.2、创建新的sshd二进制文件
[root@localhost ~]# mv /usr/sbin/sshd{,.bak}
[root@localhost ~]# mv /usr/bin/ssh{,.bak}
[root@localhost ~]# mv /usr/bin/ssh-keygen{,.bak}
[root@localhost ~]# ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
[root@localhost ~]# ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
[root@localhost ~]# ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd
`查看openssh当前版本`
[root@localhost ~]# ssh -V
OpenSSH_8.4p1, OpenSSL 1.1.1i  8 Dec 2020
4.4.3、重新启动openssh服务
[root@localhost ~]# systemctl disable sshd --now
[root@localhost ~]# mv /usr/lib/systemd/system/sshd.service{,.bak}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# cp -a openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost ~]# cp -a openssh-8.4p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
[root@localhost ~]# chkconfig --add sshd
[root@localhost ~]# systemctl enable sshd --now

4.5、ssh链接成功后的处理

[root@localhost ~]# ssh root@192.168.145.130
`成功连接上之后,可以关闭telnet服务,当然,也可以不关闭`
[root@localhost ~]# systemctl disable xinetd.service --now
[root@localhost ~]# systemctl disable telnet.socket --now
目录
相关文章
|
8天前
|
安全 Linux
CentOS7下快速升级至OpenSSH9.4p1安全版本
CentOS7下快速升级至OpenSSH9.4p1安全版本
235 1
|
8天前
|
安全 Linux Shell
CentOS7下快速升级至OpenSSH9.3p2安全版本
CentOS7下快速升级至OpenSSH9.3p2安全版本
226 0
|
10月前
|
Linux
Linux Centos7 下升级openssh1.1.1u版本
Linux Centos7 下升级openssh1.1.1u版本
252 0
|
8月前
|
安全 Linux
Centos 7.x 升级内核
千万不要小瞧这操作。
196 0
|
8天前
|
Linux
Centos7.4升级7.9失败,救援:/boot目录下文件丢失error: file ‘/initramfs-3.10.0-957.el7.x86_64.img‘ not found
以上步骤应该可以帮助你解决问题。如果问题仍然存在,可能需要更深入的排查。
42 1
|
8天前
|
SQL Linux Shell
centos yum 升级 glibc
在 CentOS 上使用 YUM 升级 GLIBC 库需要谨慎操作,因为 GLIBC 库是系统的基础组件,错误的升级可能导致系统不稳定或与现有应用程序不兼容。 以下是升级 GLIBC 库的步骤: 1. 备份重要数据:在执行任何系统级更改之前,请确保备份重要的数据和配置文件,以防止数据丢失或配置错误。 2. 更新系统:使用 YUM 更新系统软件包,确保系统是最新的稳定版本。可以使用以下命令进行更新: ```sql sudo yum update ``` 3. 备份 GLIBC 库:在升级之前,建议备份当前的 GLIBC 库。可以使用以下命令进行备份: ```bash sudo cp
1030 0
|
8月前
|
Linux
百度搜索:蓝易云【Centos8升级到Centos 8 stream教程。】
CentOS 8 stream 是 CentOS 8 的下一代版本,它采用的是“滚动发布”的方式,即在 CentOS 8.4 发布后,每个组件的更新都将立即推送给用户,而不是等到下一个大版本发布。
108 1
|
8天前
Centos7.6 cmake版本升级至3.21.0
Centos7.6 cmake版本升级至3.21.0
|
8天前
|
C语言
Centos7.6 gcc 4.8升级至7.3
Centos7.6 gcc 4.8升级至7.3
|
9月前
|
Linux Anolis 芯片
centos升级龙蜥
centos升级龙蜥
525 0

热门文章

最新文章