Linux服务器升级openssh9.8最新版全过程,及碰到标题处理 ...

打印 上一主题 下一主题

主题 1029|帖子 1029|积分 3087

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
前言:由于2024年7月1日,openssh发布了最新版9.8,所以服务器必要升级一下,特此做个详细记录:
由于下载最新版openssh9.8,必要将openssl也一并举行升级
一、下载openssh最新版本与openssl对应版本:

openssh最新版本下载地点:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable//

openssl对应版本下载地点(这下载OpenSSL 1.1.1v就可以):
Release OpenSSL 1.1.1v · openssl/openssl · GitHub

下载之后,请上传到必要升级的服务器的路径下
二、openssl安装:

2-1、安装前检查:

  1. # 查看CentOS系统版本信息
  2. cat /etc/redhat-release
  3. # 查看openssl版本信息
  4. openssl version
  5. # 查看openssh的版本信息
  6. ssh -V
复制代码
2-2、安装依赖

  1. # 安装相关的依赖项,如有遗漏再次安装
  2. yum -y install gcc pam-devel zlib-devel openssl-devel net-tools
复制代码
2-3、安装下载的openssl

由于openssh9.8p1要求openssl版本大于等于1.1.1,因此必要升级安装openssl。
①、解压openssl-1.1.1v.tar.gz

  1. # 将openssl-1.1.1v解压到/usr/local目录下
  2. Tar zxvf /home/test/openssl-1.1.1v.tar.gz –C /usr/local/
  3. # 查看解压后目标目录情况
  4. ll /usr/local/ | grep openssl
  5. # 进入openssl-1.1.1v目录下
  6. cd /usr/local/openssl-1.1.1v/
复制代码
②、openssl准备及安装

  1. # 创建安装目录
  2. mkdir /opt/openssl
  3. # 安装前查看openssl详细版本信息
  4. openssl version
  5. #编译
  6. # 配置编译和安装过程,"--prefix=" 选项配置安装目录
  7. ./config --prefix=/opt/openssl
  8. # 构建程序以及所需的指令和依赖关系
  9. make
  10. # 安装编译好的openssl-1.1.1w
  11. make install
  12. # 备注:以上三步必须没有出现报错(error),才可以继续下一步,全部三步无报错才能视为安装成功
复制代码
③、更新lib文件

  1. # 检查openssl-1.1.1v所需要的函数库
  2. ldd /opt/openssl/bin/openssl
  3. # 添加openssl-1.1.1v的库文件路径到ld.so.conf
  4. echo "/opt/openssl/lib" >> /etc/ld.so.conf
  5. # 更新系统函数库库
  6. ldconfig --verbose
  7. # 绝对路径查看openssl版本
  8. ldd /opt/openssl/bin/openssl
复制代码
④、更新bin文件

  1. # 查看旧版本的openssl命令路径
  2. which openssl
  3. # 重命名为openssl.old
  4. mv /bin/openssl /bin/openssl.old   #重命名openssl文件
  5. # 使用软连接的方式更新openssl命令
  6. ln -s /opt/openssl/bin/openssl /bin/openssl
  7. # openssl命令查看版本呢
  8. openssl version
复制代码
三、openssh9.8安装
3-1、解压下载的安装包,卸载原来包
  1. tar zxvf openssh9.7p1.tar.gz
  2. # 卸载openssh的rpm包
  3. for i in $(rpm -qa | grep openssh);do rpm -e $i --nodeps;done
复制代码
3-2、进入解压文件后,开始编译
  1. # 配置编译和安装过程,"--prefix=" 配置安装目录,"--sysconfdir=" 配置文件路径,"--with-ssl-dir=" openssl的安装路径
  2. ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/opt/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening
  3. # 构建程序以及所需的指令和依赖关系
  4. make
  5. # 安装编译好的openssh9.8p1
  6. make install
  7. # 备注:以上三步必须没有出现报错(error),才可以继续下一步,全部三步无报错才能视为安装成功
复制代码
3-3、复制并修改启动sshd.init脚本
  1. # 从源码目录下复制sshd.init到/etc/init.d/
  2. cp contrib/redhat/sshd.init /etc/init.d/
  3. ## 查看并修改SSHD的新路径,将新的openssh安装路径更新
  4. cat /etc/init.d/sshd.init | grep SSHD
  5. sed -i "s/SSHD=\/usr\/sbin\/sshd/SSHD=\/usr\/local\/openssh\/sbin\/sshd/g" /etc/init.d/sshd.init
  6. cat /etc/init.d/sshd.init | grep SSHD
  7. ## 查看并修改ssh-keygen的新路径,将新的ssh-keygen安装路径更新
  8. cat -n /etc/init.d/sshd.init | grep ssh-keygen
  9. sed -i "s#/usr/bin/ssh-keygen -A#/usr/local/openssh/bin/ssh-keygen -A#g" /etc/init.d/sshd.init
  10. cat -n /etc/init.d/sshd.init | grep ssh-keygen
复制代码
3-4、修改设置文件
  1. # 开启允许X11转发
  2. echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
  3. # 开启允许密码验证
  4. echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
复制代码
3-5、启动openssh,并设置开机启动
  1. # 复制ssh的相关命令
  2. cp -arp /usr/local/openssh/bin/* /usr/bin/
  3. # 启动sshd服务
  4. /etc/init.d/sshd.init
  5. # 查看版本
  6. ssh –V
  7. # 添加开机启动
  8. chmod +x /etc/rc.d/rc.local
  9. echo “/etc/init.d/sshd.init start” >> /etc/rc.d/rc.local  
复制代码
如果启动不乐成,通过命令查看,是什么缘故原由导致的
  1. #通过 systemctl status sshd查看sshd是否正常启动
  2. systemctl status sshd
  3. 如果执行上边命令也不可以,那么需要执行:
  4. yum install openssh-server
  5. #执行后,如果显示activing或者dead没有正常启动,那么需要执行命令,查看具体异常原因:
  6. tail -f /var/log/messages
  7. #根据日志情况,结果看到原因是22端口被占用导致无法正常启动(图当时没截)
复制代码
所以必要将22端口kill掉,特别注意,实行下边这个命令后,你毗连的这台服务器会马上毗连不上了!!!,前边都实行没有标题,才可以实行,实行过几分钟后,再来链接发现正常链接上了:
  1. fuser -k 22/tcp     #执行时需特别注意
  2. #如果怕执行上诉命令后连接不上,可以设置一个linux定时,操作方法如下:
  3. 使用cron的方法:
  4. 编辑当前用户的crontab文件:
  5. crontab -e
  6. 添加以下行来检查SSH服务并在它停止时重启:
  7. * * * * * pgrep sshd > /dev/null || /usr/sbin/sshd
  8. 这个crontab条目每分钟都会检查sshd进程是否运行。如果不运行,它将尝试重启SSH服务。
复制代码
再次毗连,发现可以正常链接上了,并通过命令查看是否为最新版本:

结束!









免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表