Linux系统:OpenSSH7.4p升级到9.0p

目录

一、理论

1.ssh

2.OpenSSH

二、实验

1.OpenSSH升级

三、问题

1.远程SSH服务器拒绝X11转发请求

         2.sshd服务重启报错

四、总结


一、理论

1.ssh

(1)概念

ssh 是协议,基于22端口的安全协议。

ssh中文解释是安全的shell,shell是一个壳或者称为解释器,把用户的请求通过shell解释器来解释为计算机能识别的二进制语言。

(2)工作原理

对称加密,就是加密和解密都是使用同一套秘钥。

服务端和客户端的交互过程如下图:

非对称加密有两个秘钥:“私钥”和“公钥”。公钥加密后的密文,只能通过对应的私钥进行解密。而通过公钥推理出私钥的可能性微乎其微。下图展示的是基本原理: 

上图在实际的使用中存在一个问题,就是客户端需要知道服务端的公钥,不然没法加密。所以需要服务端告知客户端公钥的一个过程。如下图:

 

2.OpenSSH

(1)概念

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
OpenSSH 是实现这种协议的一个工具,有客户端和服务端,用在linux系统中可以直接使用ssh客户端来登录到服务端,用在win系统中也可以直接用ssh客户端来登录到服务端,但是win环境下有图形化的工具来实现,比如x-shell、CRT等等。

(2)工作原理

openSSH是基于C/S架构工作的.

服务器端    //sshd,配置文件在/etc/ssh/sshd_config
客户端     //ssh,配置文件在/etc/ssh/ssh_config
    ssh-keygen      //密钥生成器
    ssh-copy-id     //将公钥传输至远程服务器
    scp             //跨主机安全复制工具

表1 OpenSSH工作原理

序号工作步骤
1

服务器建立公钥: 每一次启动 sshd 服务时,该服务会主动去找 /etc/ssh/ssh_host* 的文件,若系统刚刚安装完成时,由于没有这些公钥,因此 sshd 会主动去计算出这些需要的公钥,同时也会计算出服务器自己需要的私钥

2

客户端主动联机请求: 若客户端想要联机到 ssh 服务器,则需要使用适当的客户端程序来联机,包括 ssh, putty 等客户端程序连接

3

服务器传送公钥给客户端: 接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用 (此时应是明码传送,反正公钥本来就是给大家使用的)

4客户端记录并比对服务器的公钥数据及随机计算自己的公私钥: 若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts 。若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥, 则开始计算客户端自己的公私钥.
5

回传客户端的公钥到服务器端: 用户将自己的公钥传送给服务器。此时服务器:具有服务器的私钥与客户端的公钥,而客户端则是: 具有服务器的公钥以及客户端自己的私钥,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称加密系统。

6

开始双向加解密: (1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密 (2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全。

二、实验

1.OpenSSH升级

(1)为防止安装失败,无法用ssh做远程连接,因此先安装telnet

yum -y install telnet*

systemctl enable telnet.socket

systemctl start telnet.socket

注:安全文件关闭或者修改(否则root无法telnet登录)

firewall-cmd --zone=public --add-port=23/tcp --permanent

再重启防火墙

systemctl restart firewalld.service

看防火墙所有开放的端口

firewall-cmd --zone=public --list-ports

(2)查询SSH版本

ssh -V

 (3)创建文件夹并把文件上传到服务器

cd /home/user
mkdir openssh
cd openssh

 (4)备份原SSH

mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
mv /etc/ssh /etc/ssh.bak

 (5)解压文件并进入

tar -zxvf openssh-9.0p1.tar.gz
cd /home/user/openssh/openssh-9.0p1/

 (6)指定编译安装路径

CCFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib64" ./configure

完成

(7)编译安装

make
make install

完成

 (8)复制到全局使用

cp /usr/local/sbin/sshd /usr/sbin/
cp /usr/local/bin/ssh /usr/bin/
cp /usr/local/bin/ssh-keygen /usr/bin/
ln -s /usr/local/etc /etc/ssh

(9)查看版本

 (10)修改配置

(11)复制启动文件

cp /home/user/openssh/openssh-9.0p1/contrib/redhat/sshd.init /etc/init.d/sshd

 (12)服务自启动

systemctl enable sshd

 (13)验证是否有效

 不要关闭现在的会话框,如果有问题可能会连接不上服务器.新开一个会话框连接该账号密码看看能不能登录。

三、问题

1.远程SSH服务器拒绝X11转发请求

(1)报错

使用xshell连接服务器时,出现了“WARNING! The remote SSH server rejected X11 forwarding request.”,意思是“远程SSH服务器拒绝X11转发请求。”

 (2)原因分析

 (3)解决方法

在sshd的配置文件中找到X11Forwarding 后面修改为 Yes

 vim /etc/ssh/sshd_config

 X11Forwarding Yes

② 更改Xshell配置

1)点击“属性”

2)选中SSH下的隧道

3)将“转发X11连接到(X):”前的勾取消掉

4)点击“确定”

使用Xshell执行下面代码

yum install xorg-x11-xauth

2.sshd服务重启报错

(1)报错

systemctl start sshd 会很快返回,但此时命令行一直等待状态,直到数分钟后出现提示: Job for sshd.service failed because a timeout was exceeded.

 (2)问题分析

单元文件包含单元的指令和行为信息。在后台systemctl命令和单元文件一起工作。为了出色而正确的完成工作,系统管理员必须能够手工编辑单元文件。一般系统管理员手工创建的单元文件建议存放在/etc/systemd/system/目录下面。

sshd单元文件位于/usr/lib/systemd/system/sshd.service 。

sshd.service 服务启动方式为notify,但sshd 启动时不会发送消息。

 

(3)解决方法

服务启动方式修改为simple(默认方式)后即可正常启动sshd服务,并能够正常进行远程连接。

 

 重新加载服务并启动

四、总结

SSH常识:

SSH是安全的加密协议,用于远程连接Linux服务器;

SSH的默认端口是22,安全协议版本是SSH2;

SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器;

SSH客户端包含ssh连接命令和远程拷贝scp命令等。

openssh升级:

需要先开启trlnet 服务,预防升级失败连接不上服务器;

然后升级openssl地址,按照步骤设置路径地址;

最后升级完不要立马关闭会话框,要先验证,预防下次进来的时候进不来;

验证成功之后,需要关闭telnet服务,因为不安全。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值