首页 > 系统相关 >Ubuntu16.04升级openssh-9.8p1

Ubuntu16.04升级openssh-9.8p1

时间:2024-07-21 19:51:09浏览次数:17  
标签:Ubuntu16.04 sshd p1 openssh openssl 9.8 usr local ssh

7月1日OpenSSH官方发布安全更新,忙着处理的同时记录一下升级过程。

系统环境

root@NServer:~# cat /proc/version
Linux version 3.4.113-sun8i (root@test) (gcc version 5.5.0 (Linaro GCC 5.5-2017.10) ) #40 SMP PREEMPT Tue Mar 16 14:24:14 CST 2021
root@NServer:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.7 LTS
Release:	16.04
Codename:	xenial

安装包

zlib-1.3.1.tar.gz         # https://www.zlib.net/
openssl-1.1.1w.tar.gz     # https://www.openssl.org/source/old/1.1.1/index.html
openssh-9.8p1.tar.gz      # https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

升级步骤

升级顺序

openssl -> zlib -> openssh

安装openssl

tar zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl shared
make 
make install
#创建软连接
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/
#查看openssl版本,能正常输出版本号表示成功
/usr/local/openssl/bin/openssl version

安装zlib

tar zxvf zlib-1.3.1.tar.gz
cd zlib-1.3.1
./configure --prefix=/usr/local/zlib
make
make install

安装openssh

#先卸载原openssh,卸载后切记不要断开ssh连接
sudo apt purge --remove "openssh*"
rm -rf /usr/local/openssh
#安装openssh
tar zxvf openssh-9.8p1.tar.gz
cd openssh-9.8p1
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --without-openssl-header-check 
make 
make install

 配置openssh

重启sshd服务会提示“Privilege separation user sshd does not exist”需要再/etc/passwd最后加入一行sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

echo 'sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin' >> /etc/passwd

注册为服务,创建sshd.service文件

vim /usr/lib/systemd/system/sshd.service

写入内容:

[Unit]
Description=OpenSSH serve
Documentation=man:sshd(8) man:sshd_config(5)
#After=network.target sshd-keygen.service
#Wants=sshd-keygen.service
After=network.target

[Service]
#Type=notify
#EnvironmentFile=/etc/sysconfig/sshd
#ExecStart=/usr/local/openssh/sbin/sshd -D $OPTIONS
ExecStart=/usr/local/openssh/sbin/sshd
#ExecReload=/bin/kill -HUP $MAINPID
#KillMode=process
#Restart=on-failure
#RestartSec=42s

[Install]
WantedBy=multi-user.target

重载Systemctl,并设置为自启动

systemctl daemon-reload
systemctl restart sshd

这里会启动失败,使用systemctl status sshd查看失败原因,是因为原ssh服务占用了22端口,所以这里先把新的ssh服务修改成8022

vim /etc/ssh/sshd_config

把Port和ListenAddress 0.0.0.0前面的#号去掉,并把Port 后面的22改成8022如下图所示:

同时需要将8022加入防火墙,否则ssh无法连接

ufw allow 8022

改完后保存,继续重启sshd

systemctl restart sshd

没报错后,查看sshd状态,Active: active (running) 表示运行中,此时可以使用putty等工具通过8022端口登录服务器。

systemctl status sshd

加入开机启动

systemctl enable sshd

如果提示“update-rc.d: error: sshd Default-Start contains no runlevels, aborting.”,需要修改sshd

vim /etc/init.d/sshd

在#!/bin/bash 下面第二行插入

### BEGIN INIT INFO
# Provides:          sshd
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start sshd daemon at boot time
# Description:       Start sshd daemon at boot time
### END INIT INFO

如下图所示:

保存后重新设置开机自启:

systemctl enable sshd

成功后如下图所示:

在/etc/ssh/sshd_config末尾追加三行数据

echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PubkeyAuthentication yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config

重启服务器:

reboot

#查看版本:

ssh -V

至此升级成功!

附:记得将ssh端口改回22。

标签:Ubuntu16.04,sshd,p1,openssh,openssl,9.8,usr,local,ssh
From: https://www.cnblogs.com/xujiecnblogs/p/18314877

相关文章

  • Loj P10064 黑暗城堡 题解 最短路径树记数
    这道题是一道最短路径树问题。首先,什么是最短路径树呢?定义一个图的最短路径树表示一个图上的生成树,且根节点到图上任一点的距离等于原图上两者之间的距离。而不难发现,题目其实是在求图上最短路径树记数。首先,建出最短路径树。枚举每条边,判断边两个端点到根的距离之差是否为......
  • P1637 三元上升子序列
    链接https://www.luogu.com.cn/problem/P1637题目思路事实上和求逆序对的题目有点像,但是求的是同序对(?。先回顾下树状数组求逆序对的题目。https://www.cnblogs.com/zzzsacmblog/p/18314521这个总的思路其实就是前缀和,只不过拿树状数组优化了。先给每个节点对应的值对应树......
  • 洛谷 P1162 填涂颜色题解
    题目链接填涂颜色题目描述由数字\(0\)组成的方阵中,有一任意形状的由数字\(1\)构成的闭合圈。现要求把闭合圈内的所有空间都填写成\(2\)。例如:\(6\times6\)的方阵(\(n=6\)),涂色前和涂色后的方阵如下:如果从某个\(0\)出发,只向上下左右\(4\)个方向移动且仅经过其他\(0\)......
  • P1502 窗口的星星
    原题链接题解1.首先要解决的问题是,怎样的窗口能包裹住尽可能多的星星?这里有一个很巧妙的思维点,那就是我们构造一个以星星为左下角的矩形,矩形重叠的部分可以构造一个右上角在其中的窗口,这样这个窗口就能覆盖矩阵重合的星星2.这样,问题就转换成了求最大并矩阵权值和(表示窗口的右......
  • 新产品,基于1200 V 碳化硅的功率模块NXH010P120M3F1PTG NVXK2PR80WXT2 NVXK2VR80WDT2(产
    1、NXH010P120M3F1PTG是一款功率模块,在F1封装中包含10mohm/1200VSiCMOSFET半桥和一个氧化铝(AL2O3)DBC热敏电阻。SiCMOSFET开关采用M3S技术,由18V-20V栅极驱动。规格:配置:Half-Bridge下降时间:15ns高度:12.35mmId-连续漏极电流:105A长度:63.3mm最大工作温度:+150°C......
  • P1407 [国家集训队] 稳定婚姻
    原题链接题解二分图,分为两类,一类是指向,一类是被指向在这里,只需要建立情人之间的边就行,因为找情人能否成功code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;vector<int>G[10000];intmatch[10000]={0};boolvis[10000]={0};booldfs(intnow)//......
  • 洛谷P1012 拼数 C语言
    这个题可以用字符串去做,接受字符来去计算大小,这里可以用到strcmp函数str1="123"str2="124"strcmp(str1,str2)如果说str1比str2大就会返回大于0的数,一般是1;如果相等返回0,小于返回-1.它是比较这两个字符串的ascll值来比较的,比方说3的ascll值就比4小,那么前面的都相同,那......
  • 每日一题-P1050
    挺唐的经典一位一位来#include<bits/stdc++.h>usingnamespacestd;constintL=100;char_[L+5];intk;structnode{ inta[L+5],len; node(int_k=0){ len=0;memset(a,0,sizeof(a)); if(_k)a[++len]=_k; } voidread(){ scanf("%s",_+1);len=strlen(......
  • P1182 数列分段 Section II
    传送锚点:数列分段SectionII-洛谷题目描述对于给定的一个长度为\(N\)的正整数数列\(A_{1\simN}\),现要将其分成\(M\)(\(M\leqN\))段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列\(4\2\4\5\1\)要分成\(3\)段。将其如下分段:\([4\2][4\5][1......
  • P1954
    对于一个拓扑图,可以建反图。首先考虑连边,从a到b的代表val[a]<val[b]。那么DAG上每条链上的时间都递减。同时因为拓扑的性质,时间的要求是可以保证的。从入度为0的结点开始考虑贪心,让限制紧的人先飞,所以我们可以将队列换成优先队列,这样就可以满足这个性质了,因为题目保证有解。然后想......