charleschchen
作者charleschchen·2020-06-11 15:12
系统架构师·浪潮商用机器有限公司

AIX环境SSH、SSL配置以及SCP性能优化

字数 4664阅读 13406评论 1赞 5

陈炽卉

李松青


基于网络安全考虑,大部分传统客户已经摒弃了 telnet 登录方式,改为 SSH 加密登录方式,数据传输也采用了 scp/sftp 加密传输替代 ftp 之类的明文传输。和其他 OS 一样, AIX 上的 SSH 、 SSL 也是直接来源于开源软件。本文简单介绍了 AIX 环境 OpenSSH 、 OpenSSL 的安装,以及 SCP 性能优化方法,以及 Oracle RAC 19c 安装时遇到的 OpenSSH 的兼容性问题解决方法,供大家参考。

OpenSSH 、 OpenSSL 安装配置

OpenSSH 、 OpenSSL 都是直接来源于开源软件,因此设计原则上,只要是相同 OpenSSH 版本,对不同平台主要功能都是一致的。参考 OpenSSH 的 release note :

http://www.openssh.com/releasenotes.html

最新版的OpenSSH / OpenSSL软件的 AIX 平台版本可以在如下网站下载 :

https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=aixbp


注意 OpenSSH 与 OpenSSL 必须配套下载,需参考 README 文件,比如 OpenSSH 7.5 的 README :

This is OpenSSH-7.5p1 (VRMF: 7.5.102.1100) for AIX 5.3, 6.1, 7.1 and AIX 7.2.

This version of OpenSSH is compiled with OpenSSL 1.0.2k version. Hence, the required minimum level of openssl fileset installed has to be at :

  • 20.13.102.1100 (for customers using FIPS based openSSL) or
  • 1.0.2.1100 (for customers using non-FIPS based openSSL)

openssl 是基础库,必须首先更新 openssl ,再更新 openssh :

# lslpp -l|grep ssl

openssl.base 1.0.2.1300 COMMITTED Open Secure Socket Layer

openssl.man.en_US 1.0.2.1300 COMMITTED Open Secure Socket Layer

openssl.base 1.0.2.1300 COMMITTED Open Secure Socket Layer

# lslpp -l|grep openssh

openssh.base.client 7.5.102.1100 COMMITTED Open Secure Shell Commands

openssh.base.server 7.5.102.1100 COMMITTED Open Secure Shell Server

openssh.license 7.5.102.1100 COMMITTED Open Secure Shell License

openssh.man.en_US 7.5.102.1100 COMMITTED Open Secure Shell

openssh.msg.en_US 7.5.102.1100 COMMITTED Open Secure Shell Messages -

openssh.base.client 7.5.102.1100 COMMITTED Open Secure Shell Commands

openssh.base.server 7.5.102.1100 COMMITTED Open Secure Shell Server

SCP 优化方法汇总

通常在 1Gb 网络环境中,网络带宽是限制 scp 拷贝速率的瓶颈;而在 10Gb 环境中,网络带宽本身对 scp 性能通常已经不是关键。 影响 scp 的性能的关键因素是传输加密算法、完整性校验算法等等。

在作者的 10Gb 环境测试,通过调整传输加密算法(通过 -c 指定),在 OpenSSH 7.5 和 8.1 上均可以达到 400+ MBps 的速率 ( 使用aes128-gcm@openssh.comaes256-gcm@openssh.com ) 。

以下是基于 10Gb 网络环境对 scp 进行调优的要点总结:

1. 首先需要注意的一点是,scp 需要进行大量加解密运算的,这需要相当的 CPU 资源,建议分区配置需要保证 1-2 颗 CPU 给 scp 使用。

2 . OpenSSH 7.5.102.1100 for AIX 这个版本引入了一个性能补丁 IV94291 ,可以显著改善 scp/sftp 性能。但从最近的观察,有一些后续的 SSH 版本比如 7.5.102.1500 、 7.5.102.1801 可能又漏掉了这个补丁,性能变差了(使用默认算法, scp 性能仅 50MBps 左右;正常打完补丁应该在 130MBps 以上)。因此OpenSSH/openSSL 建议统一使用如下版本:
说明:
本建议基于本文发布时的最新信息,注意OpenSSH/openSSL更新速度较快,应当根据前面提及的下载网站地址及时确认最新版本。

7.5:

OpenSSH : 7.5.102.2000

openSSL : 1.0.2.2000

8.1:

OpenSSH : 8.1.102.2000

openSSL : 1.0.2.2001

这两个版本经过验证,在使用特定算法( aes128-gcm@openssh.com )时,单个scp 性能可以达到 400MBps+ .

3 . 经过验证, 使用aes128-gcm@openssh.comaes256-gcm@openssh.com 加密算法性能最优,可以将这两个加密算法修改为默认值。编辑 /etc/ssh/ssh_config 文件,加上 Ciphers 选项,如下:

Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-ctr,aes128-cbc

这样修改之后,使用默认的 scp 命令即可以利用到此特性:


示例

使用scp 默认加密算法与aes128-gcm@openssh.comaes256-gcm@openssh.com的性能对比:

# scp ./aixppc64_12201_database.zip 192.168.2.221:/dev/null

aixppc64_12201_database.zip 100% 3206MB 245.0MB/s 00:13

# scp -c aes256-gcm@openssh.com ./aixppc64_12201_database.zip 192.168.2.221:/dev/null

aixppc64_12201_database.zip 100% 3206MB 407.8MB/s 00:07

# scp -c aes128-gcm@openssh.com ./aixppc64_12201_database.zip 192.168.2.221:/dev/null

aixppc64_12201_database.zip 100% 3206MB 430.2MB/s 00:07

说明:

aes128-gcm@openssh.comaes256-gcm@openssh.com 加密算法是OpenSSH 6.2 引入:

OpenSSH 6.2 / 6.2p1 (2013-03-22)

Changes since OpenSSH 6.1

This release introduces a number of new features:

Features:

  • ssh(1)/sshd(8): Added support for AES-GCM authenticated encryption in
    SSH protocol 2. The new cipher is available as aes128-gcm@openssh.com
    and aes256-gcm@openssh.com . It uses an identical packet format to the
    AES-GCM mode specified in RFC 5647, but uses simpler and different
    selection rules during key exchange.

Oracle 与 OpenSSH 兼容性问题

Oracle RAC 19c 在 7.2 TL4 SP1 ( openssh,openssl )安装时遇到类似如下 Errors:

PRVF-5311 : File ".....out" either does not exist or is not accessible on node ....

日志中有 /usr/bin/scp -p node2:.../tmp/GridSetupActions.../CVU_19.0.0.0.0_grid/scratch/getFileInfo....out ...

ERROR>protocol error: filename does not match request

这是 Oracle ssh 检测程序问题,不兼容版本太新的 openssh/openssl 版本。可以通过 ssh –V 命令确认, OpenSSH 版本在 7.5p1 以上的都存在此问题:

# ssh -V

OpenSSH_7.5p1, OpenSSL 1.0.2r  26 Feb 2019

可以采用如下三种途径解决:

1). 临时规避措施

重命名 scp :

#mv /usr/bin/scp /usr/bin/scp.ori

创建一个新的 scp 文件,并增加可执行权限:

#vi /usr/bin/scp

# chmod 555 /usr/bin/scp

编辑 scp 文件,增加如下行,给原始 scp 命令添加一个默认参数 -T :

/usr/bin/scp.ori -T $*

正常安装 RAC , RAC 安装完成后,将 scp 恢复为原始版本:

#mv /usr/bin/scp.ori /usr/bin/scp

2). 正常途径,下载 Oracle Patch 30159782 for SCP OF CHECKPOINT FAILS WITH OPENSSH 补丁

3). 临时途径,降低 openssh/openssl 版本到如下版本,等 RAC 安装完成,再升级回去

openssh 7.5.102.1500

openssl 1.0.2.1500

采用 installp -aFYXd . openssl openssh 强制安装

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论1 条评论

ajggajgg工程师绿盟
2022-09-28 22:38
收藏
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广