远程升级openssh服务先安装telnet服务,正常来说使用ssh协议进行连接,连接之后不断开的话升级是没有问题的,ssh配置如果修改,网路突然波动导致断开就连不上了,所以安装telnet备用去进行连接,也可以直接通过telnet去操作
环境:演示系统centos7,工具xshell
1、查看当前版本
rpm -qa|grep openssh
#查看当期ssh安装包版本
ssh -V
#查看ssh版本
2、安装telnet服务
没有安装,有直接启动就行了
yum -y install xinetd telnet-server
#安装telnet,内网可以通过抽取镜像包中的安装包或镜像站下载复制上去进行安装
# telnet服务需要通过xinetd服务进行管理,所以需要安装xinetd
3、设置允许telnet终端远程登录
pts虚拟终端,允许4个终端登录登录
/etc/securetty 文件允许你规定“root”用户可以从哪个tty设备登录,里面存在的都是允许登录的
echo pts/0 >> /etc/securetty
echo pts/1 >> /etc/securetty
echo pts/2 >> /etc/securetty
echo pts/3 >> /etc/securetty
4、启动telnet
systemctl start xinetd
systemctl enable xinetd
systemctl start telnet.soxket
systemctl enable telnet.socket
查看状态
5、远程测试telnet连接是否成功
使用telnet远程访问测试
6、openssh源码包下载
源码包可以从官网下载,或者阿里云、腾讯云等镜像站下载
一般服务器都是内网,下载上传过去,有外网可以直接使用wget直接下载到服务设备上
1、打开官网
2、滚轮下翻,到下面的位置
3、选择指定版本下载
4、使用wget下载
前面是网址,最后面试你要下载的包的名字
wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
# -c,支持断点续传
# 网址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
# 包名:openssh-8.0p1.tar.gz
#放一起:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
7、上传源码包到服务器
服务器openssh版本:OpenSSH_7.4p1
[root@qianshuiliyu ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
将要升级的源码包版本
[root@qianshuiliyu ~]# ls openssh-8.0p1.tar.gz
openssh-8.0p1.tar.gz
8、依赖包安装
先安装依赖库在进行升级
不存在yum源等先下载或者从镜像抽取出来在上传到服务器安装,有依赖的先安装依赖包,使用rpm直接安装
yum -y install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pam-devel libselinux-devel
9、备份原有ssh数据与解压源码包
mkdir /etc/sshbak`date +-%Y-%m-%d`
#创建备份目录,加上当前日期
mv /etc/ssh/* /etc/sshbak-2022-03-30/
#移动ssh下的数据到备份目录,后期生成新的文件不是覆盖,可能与你之前用的不通用
mkdir /sshd
#创建安装目录
tar -xzvf openssh-8.0p1.tar.gz -C /sshd/
#解压源码包到安装目录
9、源码安装
进入解压后的目录,进行安装
pwd
/sshd/openssh-8.0p1
#当前路径
./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/sshd --sysconfdir=/etc/ssh
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
#由于启用了PAM则需要安装一个配置文件,该文件在contrib目录下
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
#拷贝开机启动脚本
make && make install
#编译成可执行文件
10、配置文件修改
vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
#修改为
PermitRootLogin yes
#允许root远程登录
#下面的默认就是开启的可以不用注释掉,dns与公钥
UseDNS no
#关闭dns选项加快访问
PubkeyAuthentication yes
#公钥验证
11、启动服务
systemctl restart sshd
#重启ssh服务
systemctl status sshd
#查看状态,默认开机自启动的,不是就添加到开机自启动中
systemctl enable sshd
# 设置开机自启动
ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017
#查看当前版本
也可以reboot重启进行验证
12关闭telnet
成功升级后停掉telnet服务
xintd如果还管理其他服务就不用关闭,只关闭telnet服务就行
systemctl stop xintd.server
systemctl stop telnet.socket
systemctl disable xintd.server
systemctl disable telnet.socket