在 anolis os 8.8 中升级 openssh 到 9.9p1
标题中版本号是实际测试通过的,理论上应该也适用于类似系统和相近版本
openssh 貌似有不带 p1 和带 p1 的两个版本,具体区别没有细研究
就网上文章来看,似乎带 p1 的版本更容易升级
升级步骤:
1、首先安装一套 telnet 用于备份
# 安装 telnet 相关
yum -y install telnet telnet-server
# 启动服务
systemctl start telnet.socket
systemctl enable telnet.socket
# 添加防火墙例外
firewall-cmd --permanent --add-port=23/tcp
# 重启防火墙生效
firewall-cmd --reload
# 重启并尝试使用 telnet 是否生效
reboot
# 测试连接(请修改 127.0.0.1 为目标服务器 IP,如遇中文乱码,可尝试使用 putty 等工具)
telnet 127.0.0.1
2、使用 telnet 连入系统,卸载 ssh 然后再安装
下载地址:https://github.com/openssh/openssh-portable/tags
# 安装编译环境
yum install -y make autoconf automake libtool zlib-devel openssl-devel
# 如果没有 unzip 命令的话
yum install -y zip
# 解压离线包
unzip openssh-portable-V_9_9_P1.zip
cd openssh-portable-V_9_9_P1
# 配置&编译
autoreconf
./configure
# 在此步可以指定安装参数,如:./configure --prefix=/usr --bindir=/usr/bin --sysconfdir=/etc/ssh
make
# 以上步骤都没问题的话,卸载系统原有 ssh
yum remove openssh-server
# 安装新的 ssh
make install
# 修改默认配置文件(在安装完成的最后一句输出,会提示有配置文件的路径,如:/usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config)
vi /usr/local/etc/sshd_config
# 确保配置文件中有以下内容且未注释
# 启用密码认证
PasswordAuthentication yes
# 启用 root 登录
PermitRootLogin yes
# 参考命令修改:检查配置,没有时在最后添加两行
grep -qxF 'PasswordAuthentication yes' /usr/local/etc/sshd_config || echo 'PasswordAuthentication yes' | sudo tee -a /usr/local/etc/sshd_config
grep -qxF 'PermitRootLogin yes' /usr/local/etc/sshd_config || echo 'PermitRootLogin yes' | sudo tee -a /usr/local/etc/sshd_config
# 如修改了默认安装路径,请注意修改该文件中默认的 sftp-server 路径
# 以下为默认配置
Subsystem sftp /usr/local/libexec/sftp-server
# 如修改参数 --prefix=/usr 此处应改为
Subsystem sftp /usr/libexec/sftp-server
# 配置文件修改完成后,可以通过以下命令检查是否有问题:
/usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config
# 生成自启文件
vi /etc/systemd/system/sshd.service
# 添加以下内容
[Unit]
Description=OpenSSH server daemon
After=network.target
[Service]
ExecStart=/usr/local/sbin/sshd
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 配置启动
sudo systemctl enable sshd
sudo systemctl start sshd
# 检查状态
sudo systemctl status sshd
# 如遇服务启动失败,检查是否有未结束的 ssh 进程
sudo netstat -tulnp | grep 22
# 结束进程(修改 888 为进程 pid)
kill 888
# 再次重启
sudo systemctl restart sshd
# 重启生效
reboot
3、检查结果
# 系统内检查版本
ssh -V
# 安装 nmap 工具
yum -y install nmap
# 从外部检查版本(注意替换 127.0.0.1 为实际 ip 地址)
nmap -sV -p 22 127.0.0.1
# 一切正常后,删除 telnet 服务
yum remove -y telnet-server
如果遇到内外检查版本不一致的情况,大概就是覆盖安装没有成功,系统默认启动的还是内置的 ssh 版本,请尝试全新安装
4、如果装错了准备卸载
# 切回安装目录
cd openssh-portable-V_9_9_P1
# 执行卸载
make uninstall
参考自:https://www.jianshu.com/p/a9b9f950cf54
输了你,赢了世界又如何...
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
2022-09-30 在 nginx 中配置 HSTS 并禁用 TLS 1.0、1.1
2022-09-30 在 asp.net core 中,更换使用 Newtonsoft.Json 并阻止驼峰化命名