首页 > 系统相关 >Ubuntu 20 手动编译安装 OpenSSH 9.6p1(最新版)

Ubuntu 20 手动编译安装 OpenSSH 9.6p1(最新版)

时间:2024-03-05 17:12:24浏览次数:29  
标签:sshd p1 20 -- openssl usr && 最新版 local

升级系统

apt-get update && apt-get --fix-broken install && apt-get autoremove

安装 telnet 服务端

在 root 下安装

apt install xinetd && apt-get install openbsd-inetd telnetd telnet -y

启动服务

/etc/init.d/openbsd-inetd restart

查看服务是否启动

netstat -anpt | grep 23

使用 telnet 连接

telnet ip

所需工具

apt-get install build-essential

安装 OpenSSL

# 下载源码包
wget --no-check-certificate https://www.openssl.org/source/openssl-3.2.0.tar.gz
# 解压
tar -zxvf openssl-3.2.0.tar.gz
# 进入目录
cd openssl-3.2.0/
# 配置
./config --prefix=/usr/local/openssl shared
# 编译
make
# 安装
make install
wget --no-check-certificate https://www.openssl.org/source/openssl-3.2.0.tar.gz && tar -zxvf openssl-3.2.0.tar.gz && cd openssl-3.2.0/ && ./config --prefix=/usr/local/openssl shared && make && make install

软链接

ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib/
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib/

确保 OpenSSL 可以使用

/usr/local/openssl/bin/openssl version

## 安装 Zlib

```bash
# 下载源码包
wget --no-check-certificate http://www.zlib.net/zlib-1.3.1.tar.gz
# 解压
tar -zxvf zlib-1.3.1.tar.gz
# 进入目录
cd zlib-1.3.1/
# 预编译
./configure --prefix=/usr/local/zlib
# 编译
make
# 安装
make install
wget --no-check-certificate http://www.zlib.net/zlib-1.3.1.tar.gz && tar -zxvf zlib-1.3.1.tar.gz && cd zlib-1.3.1/ && ./configure --prefix=/usr/local/zlib && make && make install

所需依赖

apt-get -y install libz-dev

安装 OpenSSH

# 卸载旧版本
apt purge --remove "openssh*"
# 清除旧版本进程
killall sshd
# 下载源码包
wget --no-check-certificate https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
# 解压
tar -zxvf openssh-9.6p1.tar.gz
# 进入目录
cd openssh-9.6p1/
# 编译配置
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh  --with-ssl-dir=/usr/local/openssl --with-zlib-dir=/usr/local/zlib --without-openssl-header-check
# 编译
make
# 安装
make install
# 如果出现Privilege separation user sshd does not exist:
# 需要添加 `sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin` 到 `/etc/passwd`
echo "sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin" >> /etc/passwd
# 并重新执行
make install
sudo apt purge --remove "openssh*" && killall sshd && wget --no-check-certificate https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz && tar -zxvf openssh-9.6p1.tar.gz && cd openssh-9.6p1/ && ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh  --with-ssl-dir=/usr/local/openssl --with-zlib-dir=/usr/local/zlib --without-openssl-header-check && make && make install

手动启动 OpenSSH

/usr/local/openssh/sbin/sshd

将 OpenSSH 注册为服务

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 start sshd.service
systemctl enable sshd

查看服务是否启动

systemctl status sshd
netstat -anpt | grep 22

查看版本

sudo ln -s /usr/local/openssh/bin/ssh /usr/local/bin/ssh

ssh -V

启动 root 登陆(可选)

vim /etc/ssh/sshd_config
# 修改以下内容:
PermitRootLogin yes
# 重启服务
systemctl restart sshd

尝试登陆,成功!

标签:sshd,p1,20,--,openssl,usr,&&,最新版,local
From: https://www.cnblogs.com/tangllty/p/18054446

相关文章

  • 2024.3.5总结
    CF1933F题目既然他要求出最少用时,考虑bfs思路1我们发现,我们不知道石头的位置,所以我们要记录时间\(\bmodn\)的值,\(O(N^3)\)暴力bfs思路2我们为了不记录时间这一维度,石头都是同时向上移动,可以看作是石头不动,机器人动之后不由自主地向下掉一格,终点也向下......
  • mint21.3 安装ADS2020.01 提示缺少libwebkitgtk-3.0-0
    参考之前的方法:https://www.cnblogs.com/zjxcyr/p/15705024.html但是/etc/apt/sources.list中增加:debhttp://cz.archive.ubuntu.com/ubuntubionicmainuniverse然后update就报错。$sudoaptupdateGet:1http://security.ubuntu.com/ubuntujammy-securityInRelease......
  • 基于JAVA的2048小游戏的二次开发
    引言《2048Numberpuzzlegame》是一款数字益智游戏,而《2048》的初始数字则是由2+2组成的基数4。在操作方面的不同则表现为一步一格的移动,变成更为爽快的一次到底。相同数字的方框在靠拢、相撞时会相加。系统给予的数字方块不是2就是4,玩家要想办法在这小小的16格范围中凑出「2048」......
  • 2024 年春节集训 _ 第二课 - 数据结构优化动态规划
    【例题\(1\)】递增子序列\(\color{white}{link}\)考虑\(dp.\)\(dp[i][j]\)表示以元素\(i\)为结尾,长度为\(k\)的方案数。那么显而易见就有一个转移方程:\[dp[i][j]=\sum_{a[k]<a[i],\k<i}dp[k][j-1]\]先抛去第二维度的\(j\),这是可以做一个关于\(a[i]\)值的大......
  • (20) Lazarus学习之ListFilterEdit1过滤ListBox1数据
     Delphi我写的类似功能带历史记忆,并模糊带出功能的Edit 先在ListBox1的Items里添加数据 再拖一个ListFilterEdit1要界面上,设置它的 即可看到过滤效果 同样适合CheckListBox1 ......
  • 20. 攻击牌的拖拽指针
    制作攻击指针首先创建一个ArrowLine的对象,然后给它添加LineRenderer,将线宽改为1.5,Materials改为RedArrowRedArrow就长这个样子鼠标点击攻击牌的时候出现指针二次贝塞尔曲线理论和实现方式相关代码publicvoidSetArrowPosition(){Vector3cardPo......
  • 文心一言 VS 讯飞星火 VS chatgpt (208)-- 算法导论15.4 5题
    五、设计一个O($n^2$)时间的算法,求一个n个数的序列的最长单调递增子序列。要写代码的时候,请用go语言。文心一言,抛panic:在Go语言中设计一个O(n^2)时间复杂度的算法来求一个n个数的序列的最长单调递增子序列(LongestIncreasingSubsequence,LIS)可以使用动态规划的方法......
  • 2024.3.5 esp8266开发学习_arduino常用函数
    2024.3.5esp8266开发学习_arduino常用函数pinMode函数引脚模式选择,模式有INPUT(输入),OUTPUT(输出),INPUT_PULLUP(上拉输入,自动拉高电平)//GPIOFUNCTIONS#defineINPUT      0x00//输入#defineINPUT_PULLUP   0x02//上拉输入#defineINPUT_PULLDOWN_16......
  • 洛谷题单指南-搜索-P1135 奇怪的电梯
    原题链接:https://www.luogu.com.cn/problem/P1135题意解读:计算A到B至少要按几次电梯,本质上就是求A到B的最短路径,可以通过BFS解决。解题思路:位于每一层,有两种选择:向上、向下BFS搜索直接从A找到B,每扩展一层,层数+1,层数即按电梯次数100分代码:#include<bits/stdc++.h>usingnam......
  • 第十一届蓝桥杯试题B:寻找2020
    目录题目题解:暴力题目题解:暴力需要知道文件的操作;发现2020的行列标变化li=[]#创建一个空列表用于存储读取的文本内容withopen(r'2020.txt','r')asfp:#打开名为'2020.txt'的文件,并使用文件句柄fpforlineinfp.readlines():#逐行读取文件内容......