如何在OpenBSD Unix和Linux上将OpenSSH 7.0升级到7.2

时间:2020-01-09 10:39:27  来源:igfitidea点击:

如何在OpenBSD Unix操作系统上安装现有的OpenSSH版本或将其升级到7.2?

OpenSSH 7.2版主要是一个错误修正版本。
安全修复程序包括:

  • ssh(1),sshd(8):删除未完成和未使用的漫游代码(已在OpenSSH 7.1p2中已被强制禁用)。
  • ssh(1):消除当X服务器禁用SECURITY扩展时从不可信X11转发到可信转发的回退。
  • ssh(1),sshd(8):将diffie-hellman-group-exchange支持的最小模数大小增加到2048位。
  • sshd(8):现在默认启用预身份验证沙箱(以前的版本通过sshd_config对新安装启用了此功能)。
  • 有关更多信息,请参见发行说明。

在OpenBSD Unix系统上安装/升级OpenSSH 7.2

以下命令旨在从root shell执行。
找出当前版本:

# uname -mrs

输出示例:

OpenBSD 5.8 amd64
# ssh -V

输出示例:

OpenSSH_7.0, LibreSSL 2.2.2

下载OpenSSH 7.2

执行以下命令:

# cd /usr/src/

使用ftp命令获取源代码:

# ftp http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-7.2.tar.gz

输出示例:

Trying 129.128.5.191...
Requesting http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-7.2.tar.gz
100% |**************************************************|   746 KB    00:01    
763928 bytes received in 1.42 seconds (524.85 KB/s)

如果要在OpenBSD v5.7或5.8上安装OpenSSH 7.2,则需要以下修补程序:

# ftp http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openbsd58_7.2.patch

输出示例:

Trying 129.128.5.191...
Requesting http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openbsd58_7.2.patch
100% |**************************************************|  4461       00:00    
4461 bytes received in 0.00 seconds (20.55 MB/s)

提取tar包

如下使用tar命令提取文件:

# cd /usr/src/usr.bin
# tar xvsfz /openssh-7.2/ssh/ ../openssh-7.2.tar.gz

输出示例:

ssh
ssh/hostfile.c
ssh/LICENCE
ssh/Makefile
ssh/Makefile.inc
ssh/OVERVIEW
ssh/PROTOCOL
ssh/PROTOCOL.agent
ssh/PROTOCOL.certkeys
ssh/PROTOCOL.chacha20poly1305
ssh/PROTOCOL.key
ssh/PROTOCOL.krl
ssh/PROTOCOL.mux
ssh/README
ssh/addrmatch.c
ssh/atomicio.c
ssh/atomicio.h
ssh/auth-bsdauth.c
ssh/auth-chall.c
...
..
..
ssh/ssh-keyscan
ssh/ssh-keyscan/Makefile
ssh/ssh-keysign
ssh/ssh-keysign/Makefile
ssh/ssh-pkcs11-helper
ssh/ssh-pkcs11-helper/Makefile
ssh/sshd
ssh/sshd/Makefile

将补丁应用到OpenBSD 5.7或5.8,执行:

# patch -p0 < /usr/src/openbsd58_7.2.patch

编译安装

执行以下命令:

# make obj && make cleandir && make depend && make && make install

安装新的配置文件

首先使用diff命令比较您现有的配置文件:

# diff sshd_config /etc/ssh/sshd_config
# diff ssh_config /etc/ssh/ssh_config

做出改变:

# vi ssh_config
# vi sshd_config

安装它:

# cp ssh_config sshd_config /etc/ssh

重启sshd

测试sshd的语法错误:

# /etc/rc.d/sshd check
`sshd(ok)`

重新启动sshd服务器,执行:

# /etc/rc.d/sshd restart

验证一下

您可以从源代码进行编译和安装,也可以等待Linux发行版发布更新的openssh版本。
例如,Arch Linux即将发布更新,可以使用pacman命令安装:

# ssh -V
`OpenSSH_7.2, LibreSSL 2.2.2`

关于Linux用户的说明

CentOS/RHEL/Debian和Ubuntu Linux LTS服务器保持稳定多年,您将无法安装OpenSSH版本7.2。
这些发行版将openssh软件包的版本保留为最后一个稳定的主要发行版。
有关更多信息,请参见OpenSSH项目主页。

$ sudo pacman -Syu