注意事项
- 特别注意:本次升级不能全程远程操作,请严格按照操作步骤进行执行
- 推荐在本机进行升级操作,因为升级过程会连接不上服务器
- 使用配置文件生效,一定要先停止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
登录服务器(非远程方式)
-
本节操作必须在服务器上进行,因为升级过程会连接不上服务器
-
断开ssh远程连接
-
登录服务器,将ssh远程登录的所有连接杀死(示例只有一个,实际情况有几个杀死几个):
kill -9 29957
再执行此命令后:lsof -i:22
,控制台没有任何ssh远程连接,才能进入下一步,否则,请清理完所有ssh远程连接再继续一下步
-
使用systemctl管理sshd
systemctl restart sshd
-
暂停sshd
systemctl stop sshd
-
必须确认22端口不再被使用。执行此命令后:
lsof -i:22
,控制台没有任何输出,才能进入下一步,否则,请重新结束sshd
-
使用配置文件生效
# 执行此命令会直接启动sshd服务,无需要再启动,可能通过命令:lsof -i:22,查看已经启动sshd的进程信息 /usr/sbin/sshd -f /etc/ssh/sshd_config
-
升级完成后,使用root可正常登录服务器
确认升级结果
# ssh -V
OpenSSH_9.0p1, OpenSSL 1.1.1q 5 Jul 2022
参考资料
-
openssh9.0p1升级后客户端连不上问题处理 —— 筑梦之路_筑梦之路的博客-CSDN博客_openssh升级导致远程连接失败
-
How to Fix SSH Failed Permission Denied (publickey,gssapi-keyex,gssapi-with-mic) (phoenixnap.com)
-
xxx.service is not a native service, redirecting to /sbin/chkconfig. - 编程猎人 (programminghunter.com)
-
sshd_config OpenSSH SSH 进程配置文件配置说明 - 周人假的 - 博客园 (cnblogs.com)
-
编译安装openssl时报configure: error: OpenSSL library not found解决办法_墨语澄江的博客-CSDN博客_安装openssl报错
总结
- 【参考资料.1、3、4】不是/etc/ssh或者*.ssh*下的文件权限问题
- 【参考资料.2】不是新版再支持旧版算法的问题
- 【参考资料.5】不是缺失软链接的问题
- 虽然本次升级遇的不是权限问题,但是权限问题应当引用重视,当权限不对时,这种情况是会导致haoop免密登录失败的