最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《更新rclone配置以支持diffie-hellman-group-exchange-sha256和diffie-hellman-group-exchange-sha1》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~
问题内容一些简单的背景知识。我使用 rclone
将数据传输到 SFTP 服务器。 rclone 是用 Golang 编写的,并在底层使用 lib crypto
。当我们尝试与 SFTP 服务器建立 ssh 连接时,我们收到错误消息
无法连接 SSH: ssh: 握手失败: ssh: 没有通用算法 用于密钥交换;客户提供:[[电子邮件受保护] ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group14-sha1 diffie-hellman-group1-sha1],服务器 提供:[diffie-hellman-group-exchange-sha256 diffie-hellman-group-exchange-sha1]。
crypto
lib 大约 3 周前添加了对 diffie-hellman-group-exchange-sha256 diffie-hellman-group-exchange-sha1
的支持,但需要选择加入。 (参见https://github.com/golang/crypto/commit/57b3e21c3d5606066a87e63cfe07ec6b9f0db000)
显然,最新的 rclone 版本尚未选择加入这些算法支持。所以问题是:任何人都知道如何配置 rclone 以选择对 diffie-hellman-group-exchange-sha256 diffie-hellman-group-exchange-sha1
的算法支持
解决方案
我们已成功选择加入这些算法支持并在此处提交了 pr:https://github.com/ncw/rclone/pull/3341
注意:由于这些算法被认为是不安全的,因此您还需要使用现有的 rclone 标志 --sftp-use-insecure-cipher
以使它们可用于 ssh 握手。
交互式 rclone config
现在还提供启用不安全的密码:
Enable the use of insecure ciphers and key exchange methods.
This enables the use of the following insecure ciphers and key exchange methods:
- aes128-cbc
- aes192-cbc
- aes256-cbc
- 3des-cbc
- diffie-hellman-group-exchange-sha256
- diffie-hellman-group-exchange-sha1
Those algorithms are insecure and may allow plaintext data to be recovered by an attacker.
Enter a boolean value (true or false). Press Enter for the default ("false").
Choose a number from below, or type in your own value
1 / Use default Cipher list.
\ "false"
2 / Enables the use of the aes128-cbc cipher and diffie-hellman-group-exchange-sha256, diffie-hellman-group-exchange-sha1 key exchange.
\ "true"
use_insecure_cipher> 2
好了,本文到此结束,带大家了解了《更新rclone配置以支持diffie-hellman-group-exchange-sha256和diffie-hellman-group-exchange-sha1》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!