18056868301
当前位置: > 资讯动态 >

RHEL 9将弃用OpenSSH SCP:你需要了解这些

未知 | 浏览:

红帽企业Linux(RHEL)9中OpenSSH最重要的安全性变化之一是将弃用SCP协议。

 

将有如下改变:

 

  • 默认情况下,scp命令行工具使用SFTP协议进行文件传输。

  • 可以使用新添加的-O选项恢复SCP协议的使用。

  • 可以在系统上完全禁用SCP协议的使用。如果文件/etc/ssh/disable_scp存在,任何使用scp协议的尝试都将失败。

 

做出这样的改变,是因为SCP协议已有几十年的历史,并且带有多种安全风险和问题,没有直接的解决方案。经常出现新问题(CVE-2020-15778是本文撰写时最新的一个问题,但我们不能确定它是否会是最后一个),而且很难正确修复所有问题,因为经过身份验证的会话的协议本质上是可信任的。

 

因此,一些RHEL客户希望在其系统中完全禁用SCP协议。同时,我们有SFTP,这是一个定义良好的协议,涵盖了SCP的大多数用例,切换到这个协议是有意义的。

 

补丁开发和采用

 

实现该开关的最初补丁是由Jakub Jelen编写的,他是一名红帽人,多年来一直维护OpenSSH包,对工具包的内部结构非常了解。在2021年,Jelen的补丁被上游接受了,并进行了轻微的调整。从那时起,它已经经历了几个兼容性调整,以更好地匹配SCP行为,正确处理了迄今为止发现的罕见案例。

 

虽然上游在默认情况下延迟了切换到SFTP协议,但我们决定在RHEL 9中完全切换。在主要版本中引入这种性质的变更是一个适当的时机,因为那些迁移到新的主要版本的人对可能出现的不兼容性,已有心理预期。

 

SCP和SFTP协议之间的差异

 

我们知道SCP和SFTP协议的行为存在一些差异。例如,复制文件时,SCP实用程序遵循符号链接symlinks,而SFTP不遵循。这一点已在上游得到修复,这些更改已纳入我们的产品中。在glob模式的扩展中也存在差异,但这些不兼容性目前仍将存在。

 

协议之间的另一个区别在于基于~-的路径处理的扩展。OpenSSH 8.7及更高版本支持一个特殊的SFTP扩展来处理这样的扩展。不过,早期版本不支持此扩展,因此如果使用~路径处理,将文件夹从RHEL的新版本复制到旧版本将失败。这种情况下,建议的修复方法是提供绝对路径。

 

如果此更改影响您的系统,该怎么办

 

如果此更改影响您的系统,您有几个选项。理想情况下,将遗留系统升级到RHEL的最新版本。如果做不到,可以在必要时使用SCP协议——需要使用-O选项。

 

但是如果把这个选项添加到你的脚本中,应该考虑到:

 

  • SCP协议的安全性低于SFTP协议,并且存在一定的安全风险(CVE-2020-15778就是个例子)。

  • SCP协议将在红帽企业Linux即将发布的主要版本之一中被淘汰。

  • 如果目标系统已完全禁用SCP协议,它将不起作用。

 

使用rsync代替scp实用程序也是可能和可行的。Rsync使用自己的协议进行文件传输,ssh用于传输保护。

 

如果您想了解更多关于RHEL安全的信息,请点击阅读原文访问红帽产品安全中心。