安装Telnet服务
为了避免升级OpenSSH导致服务器不可连接。需要先下载安装Telnet组件。升级期间使用Telnet作为升级期间的服务器连接方式。
- 先查询telnet是否安装
rpm -qa telnet - 如果没有安装则执行以下语句安装
yum -y install telnet - 查询telnet-server是否安装
rpm -qa telnet-server - 如果没有安装则执行以下语句安装
yum -y install telnet-server - 防火墙状态放行telent
firewall-cmd --permanent --add-port=23/tcp --zone=public - 防火墙重新载入
firewall-cmd --reload - 启用Telnet服务开机启动
systemctl enable telnet.socket - 启动Telnet服务
systemctl start telnet.socket
*注意:
- 若防火墙是已经禁用。请略过防火墙相关命令
- 若防火墙是暂时停止。建议先启动防火墙,添加访问策略!否则重装过程需要服务器重启,重启后可能因为防火墙原因无法通过telnet访问服务器。如果OpenSSH又安装失败,将导致服务器不可连接。附:防火墙启动命令
systemctl start firewalld
创建使用Telnet服务的账户
因为默认情况root 不能直接登录telnet
创建一个新用户用于登录elnet服务,这个账号升级完成后需要进行删除。
- 创建账号
sudo useradd tempuser - 设置密码
sudo passwd tempuser
输入一个密码,例如:Mycar=998
后续访问的时候,通过XShell工具连接
先用tempuser登录后,再使用
su root
切换到root用户。
升级OpenSSH
请特别注意:以下命令是使用Telnet连接后,切换到root账户进行操作。如果直接使用SSH链接进行操作,将可能会导致服务器无法连接的后果!!!
- 安装相关的依赖项,如有遗漏再次安装
yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano
yum -y install perl-IPC-Cmd
yum -y install pam-devel - 安装相关的依赖项,如有遗漏再次安装
yum -y install gcc pam-devel zlib-devel openssl-devel net-tools - 进入本地临时目录
cd /usr/local/src - 下载源代码包
[城通网盘下载文件包 (访问密码: 330231)](https://url72.ctfile.com/s/6ffc3ffd421fa7caabd5635889e4287a?p=330231"城通网盘下载文件包 (访问密码: 330231)")
说明:前往我个人分享的网盘下载。 - 解压缩代码包
tar -zxvf zlib-1.3.1.tar.gz
tar -zxvf openssl-3.3.1.tar.gz
tar -zxvf openssh-10.0p2.tar.gz
安装Zlib
- 进入zlib-1.3.1目录
cd /usr/local/src/zlib-1.3.1 - 配置
./configure --prefix=/usr/local/src/zlib - 编译及安装
make -j 4 && make test && make install
安装OpenSSL
- 进入openssl-3.3.1目录
cd /usr/local/src/openssl-3.3.1 - 配置
./config --prefix=/usr/local/src/openssl - 编译及安装
make -j 4 && make install - 配置
mv /usr/bin/openssl /usr/bin/oldopenssl
ln -sf /usr/local/src/openssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -sf /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3 - 更新动态库
vim /etc/ld.so.conf
添加 /usr/local/src/openssl/lib64 到文件中。并删除类似的旧行。我这边实际1情况是删除了 /usr/local/openssl/lib64
ldconfig - 查看更新后的版本
openssl version -v
卸载旧版本OpenSSH
- 卸载旧版本OpenSSH服务
yum remove -y openssh - 清理残余文件
rm -rf /etc/ssh/*
安装最新版OpenSSH服务
- 进入openssh-10.0p2目录
cd /usr/local/src/openssh-10.0p2 - 配置
./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlib - 编译及安装
make -j 4 && make install - 查看目录版本
/usr/local/src/ssh/bin/ssh -V - 复制新ssh文件
cp -rf /usr/local/src/openssh-10.0p2/contrib/redhat/sshd.init /etc/init.d/sshd
cp -rf /usr/local/src/openssh-10.0p2/contrib/redhat/sshd.pam /etc/pam.d/sshd
cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen - 允许root登录
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config - 非标志端口需要注意(非22端口)
本次升级会将SSH监听端口恢复为22。如果不是使用这个端口。需要运行以下语句修改端口(把22修改为需要的数字)。
echo 'Port 22' >> /etc/ssh/sshd_config
安装后的收尾
- 重启sshd服务
systemctl daemon-reload
/etc/init.d/sshd restart - 查看服务运行状态
/etc/init.d/sshd status - 添加开机启动
chkconfig --add sshd - 查看升级后ssh版本
ssh -V
关闭Telnet服务
- 停止Telnet 服务
systemctl stop telnet.socket - 禁用Telnet服务开机启动
systemctl disable telnet.socket
删除临时用户
- 使用命令删除临时用户
userdel -rf tempuser
提示:这篇文章只作为学习记录,感谢原作者分享。
参考链接:
https://blog.csdn.net/Jerry_zhy/article/details/141217681
浙公网安备 33010602011771号