目录
1.openssh下载地址
https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
2.安装openssh依赖
由于是内网环境不能连接外网,升级openssh所需的依赖包不能直接yum下载,因此首先我们需要解决安装需要的依赖问题。离线安装依赖包的方式很多,比如挂载映像文件做本地仓库、外网下载rpm包再离线安装等。
这里我们选择rpm安装。在外网环境使用yum命令加上 --downloadnly 参数,将依赖包只下载不安装到本地保存,再上传至内网使用 yum 命令的 localinstall 使用本地rpm包安装,如下:
# 安装yum-downloadonly,启用--downloadonly
yum -y install yum-downloadonly
# 下载相关依赖包到/opt目录
yum -y install --downloadonly --downloaddir=/opt gcc-c++ openssl-devel pam-devel
# 将所有依赖包转移到内网/opt目录,使用localinstall离线本地安装
yum -y localinstall gcc-c++ openssl-devel pam-devel /opt/*
3.升级openssh8.0
openssh-8.0p1.tar.gz 这个包我也是放在内网的/opt下,升级过程如下:
注意:如果是远程连接服务器,且不方便现场操作服务器的,升级之前建议先安装telnet防止ssh升级失败连接不上,否则会很麻烦。
下面操作确保上一步没错再执行下一步。
# 升级前确认版本
ssh -V
# 进入/opt
cd /opt/
# 解压并进入openssh目录
tar -xvf openssh-8.0p1.tar.gz && cd openssh-8.0p1
# 先备份原来的ssh目录,否则下面编译会出错
mv /etc/ssh /etc/ssh_bak
# 编译安装
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam && make install
# 检查编译是否异常,0正常否则异常
echo $?
# 备份原有目录
mv /etc/init.d/sshd /etc/init.d/sshd_bak
mv /etc/pam.d/sshd /etc/pam.d/sshd.pam_bak
# 将编译好的文件复制到相关目录下并重命名
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
# 设置允许root登录,否则将无法登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# 查看升级后版本
ssh -V
# 重启sshd
service sshd restart
# 打开另一个终端测试连接,当前终端不要退出