目录
一、OpenSSH是什么
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
二、为什么要升级OpenSSH
OpenSSH是用于安全远程登录和其他安全网络服务的软件包,对于大多数Linux发行版来说,它都是默认安装的。随着时间的推移,OpenSSH的新版本可能会引入安全性更新和改进,因此升级到最新版本是很有必要的。特别是对于CentOS 7,由于它已经停止了官方支持,因此及时升级系统组件变得更加重要。
三、ssh与openssh的对比
SSH(Secure Shell)是一种网络协议,用于在网络上安全地进行远程登录和执行命令。OpenSSH 是一个实现 SSH 协议的免费开源软件套件。以下是 SSH 和 OpenSSH 之间的比较:
SSH:
定义:SSH 是 Secure Shell 的缩写,是一种网络协议,用于在网络上安全地进行远程登录和执行命令。
功能:SSH 提供了加密的通信会话,可以在不安全的网络中安全地传输数据。
特点:SSH 提供了身份验证、加密和数据完整性保护等功能,使远程登录和文件传输更加安全。
OpenSSH:
定义:OpenSSH 是 SSH 协议的开源实现,包括了 SSH 客户端和服务器程序。
功能:OpenSSH 提供了 SSH 协议的实现,允许用户在计算机之间建立安全的连接。
特点:OpenSSH 是一个广泛使用的工具,用于远程管理和文件传输,同时支持多种加密算法和身份验证方法。
主要区别:
SSH 是一种网络协议,用于安全远程登录和执行命令,而 OpenSSH 是 SSH 协议的具体实现。
SSH 是一个协议标准,而 OpenSSH 是一个软件套件,包括 SSH 客户端和服务器程序。
总的来说,SSH 是一种协议而 OpenSSH 是实现该协议的软件套件,用于提供安全的远程登录和通信
四、升级OpenSSH版本
1、关闭防火墙防护、查看当前版本
systemctl stop firewalld
systemctl status firewalld
vim /etc/selinux/config SELINUX=disabled
setenforce 0
ssh -V
2、下载openssh地址
Index of /pub/OpenBSD/OpenSSH/portable/https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
3、对原来的openshell备份
3.1通过 whereis ssh 找到openshell文件
由于openssh安装可能会造成ssh无法使用,所以要先安装telnet,保证可以使用telnet协议登录服务器
3.2 安装telnet
为了防止升级安装失败,无法使用ssh做远程连接,因此先安装telnet预防
yum install -y xinetd
yum install -y telnet #安装客户端
yum install -y telnet-server #安装服务端
或者
yum install telnet* -y
3.2运行root用telnet登录
#增加pts配置;如果登录用户较多,需要更多的pts/*
vim /etc/securetty
在末尾添加:
pts/0
pts/1
pts/2
pts/3
[root@localhost ~]# vim /etc/xinetd.d/telnet 如果没有则不修改
disable = no #开启telnet服务功能,否则telnet启动后,23端口起不来
3.3 启动 telnet 服务
systemctl enable xinetd //开机自启动
systemctl start xinetd
systemctl enable telnet.socket
systemctl start telnet.socketsystemctl enable telnet
systemctl start telnet
4、下载8.1版本 ssh
4.1把8.1版本的包拖进来
4.2解包到 /usr/local/src 下,更改属主属组为 root root
tar zxvf openssh-8.1p1.tar.gz -C /usr/local/src/
chown -R root.root /usr/local/src/openssh-8.1p1/ll openssh- 8.1p1/
5、卸载旧版本ssh
找到openssh的rpm包并强制删除
备份ssh后删除
service sshd stop
rpm -e `rpm -qa| grep openssh` --nodeps
cp -r /etc/ssh/ /etc/ssh_bak
rm -rf /etc/ssh/*
6、安装依赖环境
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pam-devel pore-devel
yum install -y pam* zlib*
切换目录
cd /usr/local/src/openssh-8.1p1/
编译安装 ./configure make make install
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam
7、复制文件并修改权限
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
echo "PermitRootLogin yes" > /etc/ssh/sshd_config
8、设置开机自启动ssh服务
[root@zzzcentos3 openssh-8.1p1]#chkconfig --add sshd
[root@zzzcentos3 openssh-8.1p1]#chkconfig sshd on
[root@zzzcentos3 openssh-8.1p1]#service sshd start
Starting sshd (via systemctl): [ 确定 ]
[root@zzzcentos3 openssh-8.1p1]#ssh -V
OpenSSH_8.1p1, OpenSSL 1.0.2k-fips 26 Jan 2017
设置开机自启动
开启服务,查看服务版本,确认升级成功