linux openssh升级8.0


介绍

OpenSSH 是一种用于安全远程登录和文件传输的开源工具集。它基于 SSH (Secure Shell)协议,提供了加密的通信通道,以保护用户的登录信息、传输的数据和执行的命令不被窃取或篡改。OpenSSH 是许多 Linux 和 Unix-like 系统中默认的 SSH 客户端和服务器软件,也可以在其他操作系统上使用。

以下是 OpenSSH 的一些主要特点和功能:

  1. 安全的远程登录:OpenSSH 提供了安全的远程登录功能,允许用户通过 SSH 协议远程登录到远程主机,以执行命令、管理系统或访问文件。

  2. 加密的通信通道:OpenSSH 使用强大的加密算法(如 AES、3DES)对通信通道进行加密,确保数据在传输过程中的机密性和完整性。

  3. 公钥身份验证:OpenSSH 支持公钥身份验证机制,允许用户使用公钥和私钥对登录进行身份验证,而不是传统的密码验证方式,提高了登录的安全性。

  4. 端口转发:OpenSSH 支持端口转发功能,允许用户在 SSH 会话中建立加密的隧道,将本地端口转发到远程主机,或将远程端口转发到本地主机,以实现网络服务的安全访问。

  5. 文件传输:OpenSSH 包含了 sftp(SSH 文件传输协议)客户端和服务器,允许用户通过加密的通道进行安全的文件传输和管理。

  6. 远程执行命令:OpenSSH 允许用户在远程主机上执行命令,执行结果将通过加密通道返回到本地主机,保护了命令的机密性和完整性。

  7. 安全的文件传输:OpenSSH 提供了 scp(Secure Copy)工具,允许用户通过 SSH 协议进行安全的文件传输,可以将文件从本地主机复制到远程主机,或从远程主机复制到本地主机。

  8. 灵活的配置选项:OpenSSH 提供了丰富的配置选项和参数,允许管理员根据实际需求进行定制和配置,以满足不同环境和安全策略的要求。

开始升级:

第一步

安装telnet服务端

yum -y install xinetd telnet-server

第二步

默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容
注释auth那一行

cat /etc/pam.d/login
#auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

第三步

添加用户登陆设备

cp /etc/securetty /etc/securetty.bak
echo "pts/0" >> /etc/securetty
echo "pts/1" >> /etc/securetty
echo "pts/2" >> /etc/securetty

第四步

开启root用户远程登陆,编辑/etc/pam.d/remote,注释下列这行

vi /etc/pam.d/remote
#auth required pam_securetty.so

第五步

重启telnet和xinetd服务【telnet服务依赖于xinetd服务】

systemctl restart telnet.socket
systemctl restart xinetd

注意

如果开启了防火墙,需要将23端口(系统默认23为telnet端口)添加到防火墙允许的端口的列表中,然后使用telnet协议登录服务器
格式:telnet IP

安全措施做完,下边开始进入openssh升级

第六步

安装依赖包

yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel pam* zlib*

第七步

下载openssh包和openssl的包

wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz
wget https://ftp.openssl.org/source/old/1.0.2/openssl-1.0.2r.tar.gz

第八步

开始安装openssl
解压文件

tar xf openssl-1.0.2r.tar.gz 

现在系统版本等会升级完毕对比下

[root@host ~]# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017
[root@host ~]#

第九步

备份下面2个文件或目录(如果存在的话就执行)

ll /usr/bin/openssl
mv /usr/bin/openssl /usr/bin/openssl_bak
ll /usr/include/openssl
mv /usr/include/openssl /usr/include/openssl_bak

第十步

编译安装新版本的openssl
配置、编译、安装3个命令一起执行
&&符号表示前面的执行成功才会执行后面的

./config shared && make && make install

本人是拆分来做的
每做一步都 echo $? 查看上一条命令执行是否报错 0 表示没有问题

第十一步

下面2个文件或者目录做软链接 (刚才前面的步骤mv备份过原来的)

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
ll /usr/bin/openssl
ll /usr/include/openssl -ld

命令行执行下面2个命令加载新配置

echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
/sbin/ldconfig
 查看确认版本。没问题

[root@host openssl-1.0.2r]# openssl version
OpenSSL 1.0.2r 26 Feb 2019

第十二步

安装openssh

[root@host tools]# tar xf openssh-8.0p1.tar.gz 
[root@host tools]# cd openssh-8.0p1
[root@host openssh-8.0p1]# chown -R root.root /data/tools/openssh-8.0p1
[root@host openssh-8.0p1]# pwd
/data/tools/openssh-8.0p1
[root@host openssh-8.0p1]# cd /data/tools/
[root@host openssh-8.0p1]# mkdir ssh-bak
[root@host openssh-8.0p1]# cd ssh-bak
[root@host openssh-8.0p1]# mv /etc/ssh/* ./
[root@host openssh-8.0p1]# cd /data/tools/openssh-8.0p1
[root@host openssh-8.0p1]# ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam
[root@host openssh-8.0p1]# make && make install

第十三步

开启root登录
修改配置文件最终为如下内容,其他的不要动

[root@host ~]# grep "^PermitRootLogin"  /etc/ssh/sshd_config
PermitRootLogin yes
[root@host ~]# grep  "UseDNS"  /etc/ssh/sshd_config
UseDNS no
[root@host ~]# echo 'PermitRootLogin yes' >>/etc/ssh/sshd_config 

从原先的解压的包中拷贝一些文件到目标位置(如果目标目录存在就覆盖)
(可能下面的ssh.pam文件都没用到,因为sshd_config配置文件貌似没使用它,请自行测试。我这边是拷贝了)

[root@host /data/tools/openssh-8.0p1]# cp -a contrib/redhat/sshd.init /etc/init.d/sshd
[root@host /data/tools/openssh-8.0p1]# cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
[root@host /data/tools/openssh-8.0p1]# chmod +x /etc/init.d/sshd
 
[root@host /data/tools/openssh-8.0p1]# chkconfig --add sshd
[root@host /data/tools/openssh-8.0p1]# systemctl enable sshd

把原先的systemd管理的sshd文件删除或者移走或者删除,不移走的话影响我们重启sshd服务

 mv  /usr/lib/systemd/system/sshd.service  /data/tools/

设置sshd服务开机启动

[root@host ~]# chkconfig sshd on
Note: Forwarding request to 'systemctl enable sshd.socket'.
Created symlink from /etc/systemd/system/sockets.target.wants/sshd.socket to /usr/lib/systemd/system/sshd.socket.

使用systemd方式也行

systemctl stop sshd
systemctl start sshd
systemctl restart sshd

第十四步

测试版本。都正常

ssh -V
OpenSSH_8.0p1, OpenSSL 1.0.2r  26 Feb 2019

如果不是生产机器。可以试着重启机器测试下登录sshd是否正常。我这边测试都没问题
测试没问题后可以把telnet服务关闭了

systemctl disable xinetd.service
systemctl stop telnet.socket
systemctl stop xinetd

第十五步:回滚

如果之前是rpm包安装的。并且按照以上步骤操作,可以直接以下命令进行回滚

yum -y install openssh-clients
yum -y install openssh-server
yum -y install openssh
systemctl restart sshd

可以查看版本是否回滚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值