centos7.6升级openssh-8.0p1版本

升级后的效果
在这里插入图片描述
升级前把selinux 关闭
vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,保存退出。
如果ssh版本过低,最好先yum update openssh升级下到目前yum仓库默认的openssh7.4p1版本

安装telnet-server以及xinetd

yum install xinetd telnet-server -y

配置telnet
查看Telnet文件是否存在

ll /etc/xinetd.d/telnet

存在:
把配置文件配置root登录的disable = no 改成 disable = yes
centos7.6升级openssh-8.0p1版本_第1张图片
配置Telnet登录的终端类型,在/etc/securetty文件末尾增加一些pts终端,如下
pts/0
pts/1
pts/2
pts/3
配置后的显示
在这里插入图片描述
启动telnet服务,并设置开机自启动

systemctl enable xinetd
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
netstat -lntp|grep telnet

测试Telnet是否能够正常访问,防止ssh意外连接中断造成升级失败,不能进行远程登录

安装依赖包
~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

升级需要几个组件,有些是和编译相关的

yum install -y gcc-c++ glibc make autoconf openssl openssl-devel pam-devel

安装pam和zlib等(后续升级操作没有用到,可自行测试不安装是否有影响)

yum install -y pam*  zlib*

下载openssh和OpenSSL升级包
https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/
https://ftp.openssl.org/source/

安装OpenSSL


    mkdir /mnt/openssh
    cd /mnt/openssh
    rz -E           //需要安装lrzsz
    ll
    解压文件
    tar -zxvf openssl-****.tar.gz openssh*****.tar.gz
    ll
    cd 

备份两个文件(如果存在的话就执行)

    ll /usr/bin/openssl
    mv /usr/bin/openssl /us/bin/openssl_bak
    ll /usr/include/openssl
    mv /usr/include/openssl /user/include/openssl_bak
编译安装新版本OpenSSL

    cd /mnt/openssh/openssl-*
    ./config shared && make install

以上命令执行完毕,echo $?查看整个make install是否有报错,0表示没有问题
下面2个文件或者目录做软连接(前面备份的两个文件)

    ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/ssl/include/openssl /usr/include/openssl
    ll /usr/bin/openssl
    ll /usr/include/openssl -ld

执行下面两个命令加载新配置

    echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
    /sbin/ldconfig

查看确认版本

    openssl version
    有可能会出现如下报错
    原因:库的位置有错
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
   解决办法
   

```
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
```

安装openssh

解压openssh安装包

cd /mnt/openssh
tar -zxvf openssh-*.tar.gz
cd openssh-*

命令行删除原先ssh的配置文件和目录
然后配置、编译安装

mv /etc/ssh /etc/ssh_bak
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-include=/usr/local/ssl/include --with--ssl-dir=/usr/locla/ssl --with-zlib --with-md5-passwords --with-pam && make install

echo $?

修改配置文件如下内容

grep "^PermitRootLogin" /etc/ssh/sshd_config
PermitRootLogin yes
grep "UseDNS" /etc/ssh/sshd_config
UseDNS no

从原先的解压包中拷贝一些文件到目标位置

cp -a contrib/rehat/sshd.init /etc/init.d/sshd
cp -a contrib/rehat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd

把原先的systemd管理的sshd文件删除或者移走或者删除,否则会影响sshd重启

mv /usr/lib/systemd/sshd.service /mnt

设置开机自启动

chkconfig sshd on

测试自启动是否正常

/etc/init.d/sshd/ restart
netstat -lntp
/etc/init.d/sshd stop
netstat -lntp
/etc/init/d/sshd start

systemd方式

systemctl stop sshd
netstat -lntp
systemctl start sshd
netstat -lntp
systemctl restart sshd
netstat -lntp

检查版本

ssh -V

你可能感兴趣的:(centos7.6升级openssh-8.0p1版本)