Ubuntu 16.04升级OpenSSH

升级ubuntu 16.04上的openssh到8.8p1版本的指南,确保在更新过程中避免ssh连接问题,请遵循以下步骤。

  1. 安装Telnet以防SSH故障:

    为了防止在升级过程中SSH出现问题,首先在服务器上安装Telnet服务端和客户端。

    apt-get install openbsd-inetd telnetd telnet
    /etc/init.d/openbsd-inetd restart     # 启动服务
    netstat -anpt|grep 23                 # 检查Telnet服务的默认端口是否启动
    telnet ip                             # 测试是否可以成功登录

    确保服务器对访问主机IP开放防火墙:

    ufw allow from 192.168.xx.xx to any port 23

    在主机上安装Telnet客户端,并进行远程测试:

    telnet 服务器ip

    如果遇到“Login incorrect”错误,请修改login文件:

    vi /etc/pam.d/login

    注释掉pam_securetty.so一行。

    Ubuntu 16.04升级OpenSSH

    具体参考:https://www.php.cn/link/2c6da25c244f420a938f030b17e22d3e

  2. 下载安装包:

    下载所需的OpenSSL、OpenSSH和Zlib安装包。

    wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1l.tar.gz
    wget --no-check-certificate https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz
    wget http://www.zlib.net/zlib-1.2.11.tar.gz

    下载完成后,依次解压这些包:

    tar -zxvf xxx.gz
  3. 安装Zlib:

    解压Zlib并进行安装:

    tar xvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure --prefix=/usr/local/zlib
    make -j 8
    make install

    如果在运行./configure --prefix=/usr/local/zlib时遇到错误,请检查并安装gcc:

    cc -v
    sudo apt-get install gcc
  4. 安装OpenSSL:

    解压并安装OpenSSL:

    tar zxvf openssl-1.1.1l.tar.gz
    cd openssl-1.1.1l
    ./config shared zlib
    make -j 8
    sudo make install

    如果在编译过程中遇到zlib.h: No such file or directory错误,请返回Zlib源码目录执行以下操作:

    make clean
    ./configure --shared
    make test
    sudo make install
    sudo cp zutil.h /usr/local/include
    sudo cp zutil.c /usr/local/include

    然后回到OpenSSL源码目录重新编译。

    备份原来的OpenSSL,并创建软链接到系统位置:

    巧文书 巧文书

    巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。

    巧文书 281 查看详情 巧文书
    mv /usr/bin/openssl /usr/bin/openssl.bak
    mv /usr/include/openssl /usr/include/openssl.bak
    ln -s /usr/local/bin/openssl /usr/bin/openssl
    ln -s /usr/local/include/openssl /usr/include/openssl

    添加OpenSSL的lib库到系统:

    echo "/usr/local/lib" > /etc/ld.so.conf.d/openssl.conf
    ldconfig

    查看新的OpenSSL版本:

    openssl version -a

    完成后显示应为:OpenSSL 1.1.1l 24 Aug 2025

  5. 更新OpenSSH:

    备份原OpenSSH文件,并卸载旧版本:

    mv /etc/init.d/ssh /etc/init.d/ssh.old
    mv /etc/ssh /etc/ssh.old
    apt-get remove openssh-server openssh-client -y

    Ubuntu 16.04升级OpenSSH

    安装libpam0g-dev,并解压、配置、编译新版本的OpenSSH:

    apt-get install libpam0g-dev -y
    tar zxvf openssh-8.8p1.tar.gz
    cd openssh-8.8p1
    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-ssl-dir=/usr/local --with-privsep-path=/var/lib/sshd
    make -j 8
    sudo make install

    检查新版本的SSH:

    ssh -V

    应显示:OpenSSH_8.8p1, OpenSSL 1.1.1l 24 Aug 2025

    完成更新后,恢复原备份文件:

    cd /etc/ssh
    mv sshd_config sshd_config.default
    cp ../ssh.old/sshd_config ./
    mv /etc/init.d/ssh.old /etc/init.d/ssh
    systemctl unmask ssh
    systemctl restart ssh

    检查SSH服务状态:

    service sshd status

    Ubuntu 16.04升级OpenSSH

    如果发现scp无法远程连接,报错FATAL ERROR: Received unexpected end-of-file from SFTP server,请修改sshd_config文件:

    vi /etc/ssh/sshd_config

    将Subsystem配置为:

    Subsystem       sftp    /usr/local/openssh/libexec/sftp-server

    重启SSH服务:

    service sshd restart

    如果没有/usr/local/openssh目录,请将/usr/libexec/sftp-server配置进上述文件。

    确认SSH连接正常后,可以关闭Telnet服务:

    (1)关闭telnet服务(有两种方式)
    a)vi /etc/xinetd.d/telnet,将disable=no改成disable=yes;
    b)chkconfig telnet off;如果需要设置telnet服务不为开机自启动,使用命令chkconfig --del telnet
    (2)使用命令server xinetd restart或者/etc/init.d/xinetd restart使更改生效。

参考:Ubuntu 16.04 升级Openssh 8.8P1 Ubuntu 16 更新openssh 8.8

以上就是Ubuntu 16.04升级OpenSSH的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。