注意事项

  • 特别注意:本次升级不能全程远程操作,请严格按照操作步骤进行执行
  • 推荐在本机进行升级操作,因为升级过程会连接不上服务器
  • 使用配置文件生效,一定要先停止sshd服务,否则会遇到root账号一直不能登录的问题

功能点

  • openssh版本升级:7.4p1->9.0p1

上传升级包

  • 将本地的升级包【openssh-9.0p1.tar.gz】上传至服务器目录:/home/

安装升级包

  • 一键升级脚本【openssh-9.0p1.sh】,执行过程需要再次确认,请输入y,完成确认
tar zxvf /home/openssh-9.0p1.tar.gz -C /home/

# etc backup
mkdir -p /home/etc /home/service
# 卸载的时候都会把配置文件以sshd_config.rpmsave的方式另存一份但是/etc/pam.d/sshd这个配置文件并没有另存,所以建议都备份一下。
cp /etc/ssh/sshd_config /home/etc/sshd_config
cp /etc/pam.d/sshd /home/etc/sshd

# 删除旧版本的openssh
yum remove openssh –y

# 编译
cd /home/openssh-9.0p1
CCFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib64" ./configure
make && make install

# 赋权
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

# 拷贝+赋权
cp -a /home/openssh-9.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd

# etc 恢复备份
cp /home/etc/sshd /etc/pam.d/sshd
mv /etc/ssh/sshd_config.rpmsave /etc/ssh/sshd_config
mv /etc/ssh/ssh_config.rpmsave /etc/ssh/ssh_config

# 编译出来的sshd放在/usr/local/sbin目录下,这里需要拷贝到执行目录
cp /usr/local/sbin/sshd /usr/sbin/
cp /usr/local/bin/ssh-keygen /usr/bin/

# 添加添加自启服务ssh到开机启动项
chkconfig --add sshd
chkconfig sshd on

# 检测一下服务是否运行成功
chkconfig --list |grep sshd

# 查看端口是存在非本地连接的客户端
lsof -i:22
  • 修改配置文件
# sshd正常运行状态下,执行如下命令会提示不支持的三个属性,根据提示注释掉对应的属性
/usr/sbin/sshd -f /etc/ssh/sshd_config

vi /etc/ssh/sshd_config
# 找到三个配置属性值并注释
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
#UsePAM yes

# 允许root登录,取消注释
PermitRootLogin yes

登录服务器(非远程方式)

  1. 本节操作必须在服务器上进行,因为升级过程会连接不上服务器
  2. 断开ssh远程连接
  3. 登录服务器,将ssh远程登录的所有连接杀死(示例只有一个,实际情况有几个杀死几个):kill -9 29957

Centos7 升级 Rocky Linux 9_服务器


再执行此命令后:lsof -i:22,控制台没有任何ssh远程连接,才能进入下一步,否则,请清理完所有ssh远程连接再继续一下步

  1. 使用systemctl管理sshd
systemctl restart sshd
  1. 暂停sshd
systemctl stop sshd
  1. 必须确认22端口不再被使用。执行此命令后:lsof -i:22,控制台没有任何输出,才能进入下一步,否则,请重新结束sshd
  2. Centos7 升级 Rocky Linux 9_服务器_02

  3. 使用配置文件生效
# 执行此命令会直接启动sshd服务,无需要再启动,可能通过命令:lsof -i:22,查看已经启动sshd的进程信息
/usr/sbin/sshd -f /etc/ssh/sshd_config
  1. 升级完成后,使用root可正常登录服务器

确认升级结果

# ssh -V
OpenSSH_9.0p1, OpenSSL 1.1.1q  5 Jul 2022