目录
一.OpenSSH是什么?
二.升级OpenSSH版本至8.9
1.环境介绍
2.检查是否安装telnet
3.安装telnet服务
4.启动telnet服务
5.安全文件关闭或者修改(否则root无法telnet登录)
6.安装依赖包
7.备份原有SSH服务版本
8.下载OpenSSH升级所需安装包
9.删除现有的安装SSH的相关软件包
10.上传并解压安装压缩包
11.查看SSH命令的执行路径
12.复制源码解压路径的开机启动脚本
13.修改开机启动文件
14.修改配置文件,允许root用户通过ssh远程登录
15.复制文件到/usr/local/bin/下,增加执行权限
16.启动sshd服务并验证更新是否成功
一.OpenSSH是什么?
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
SSH协议有两个版本: v1:基于CRC-32 做MAC,不安全; (一般用于实现主机认证) v2:基于协议协商选择双方都支持的最安全的MAC机制 基于DH做密钥交换,基于RSA或DSA实现身份认证,从而实现无需输入账号面膜 客户端通过检查服务器端的主机秘钥来判断是否能够继续通信; 认证方式: 1、基于口令的认证 2、基于密钥的认证
为什么要使用OpenSSH:
由于传统的telnet、rcp ftp等工具是明文传输数据的,对数据安全性存在很大的安全隐患,而OpenSSH可以对传输的数据进行加密从而大大提高了数据的安全性
二.升级OpenSSH版本至8.9
1.环境介绍
升级版本原因:OpenSSH有严重漏洞,因此要升级到最新版本
ssh -V
#查看当前版本
systemctl stop firewalld
setenforce 0
#关闭防火墙
为了防止升级安装失败,无法使用ssh做远程连接,因此先安装telnet预防
2.检查是否安装telnet
rpm -q telnet-server
#telnet服务端
rpm -q telnet
#telnet客户端
3.安装telnet服务
yum install telnet-server -y
yum install telnet -y
或者
yum install telnet* -y
4.启动telnet服务
systemctl enable telnet.socket
systemctl start telnet.socket
5.安全文件关闭或者修改(否则root无法telnet登录)
默认情况下,系统是不允许root用户telnet远程登陆的,如果要使用root用户直接登录,需设置以下内容。或者可以添加一个可以登录的用户,登录并su到root用户
mv /etc/securetty /etc/securetty.bak
或者
echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty
6.安装依赖包
yum -y install zlib*
yum -y install pam-*
yum -y install gcc
yum -y install openssl-devel
7.备份原有SSH服务版本
mv /etc/ssh /etc/ssh.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
8.下载OpenSSH升级所需安装包
官方下载地址:Index of /pub/OpenBSD/OpenSSH/portable/
9.删除现有的安装SSH的相关软件包
rpm -e `rpm -qa | grep openssh` --nodeps
10.上传并解压安装压缩包
#切换目录,上传压缩包
cd /opt
rz -E
#解压
tar -zxvf openssh-8.9p1.tar.gz
#编译安装
cd openssh-8.9p1
./configure --sysconfdir=/etc/ssh
#安装
make && make install
11.查看SSH命令的执行路径
which sshd
12.复制源码解压路径的开机启动脚本
cp /opt/openssh-8.9p1/contrib/redhat/sshd.init /etc/init.d/sshd
13.修改开机启动文件
sed -i '25cSSHD=/usr/local/sbin/sshd' /etc/init.d/sshd
sed -i '41c/usr/local/bin/ssh-keygen -A' /etc/init.d/sshd
14.修改配置文件,允许root用户通过ssh远程登录
sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config
15.复制文件到/usr/local/bin/下,增加执行权限
cp /opt/openssh-8.9p1/contrib/ssh-copy-id /usr/local/bin/
chmod +x /opt/openssh-8.9p1/contrib/ssh-copy-id
16.启动sshd服务并验证更新是否成功
#启动
service sshd start
#查看版本号
ssh -V