首页 > 解决方案 > heroku-20 堆栈上的 ssh-dss

问题描述

在将我的 Ruby on Rails 应用程序从 heroku-16 升级到 heroku-20 堆栈时,我不再能够连接到某个 SFTP 服务器:

could not settle on host_key algorithm
Server host_key preferences: ssh-dss
Client host_key preferences: ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256,ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-rsa

看来他们已经在当前堆栈中删除了对 ssh-dss 的支持。根据https://www.openssh.com/legacy.html它可以通过修改 /.ssh/config 文件来启用 '

Host somehost.example.org
    HostKeyAlgorithms +ssh-dss

虽然我不知道如何或是否可以在 Heroku 上修改它。

任何帮助表示赞赏,谢谢。

标签: herokussh

解决方案


append_all_supported_algorithms: true我能够通过将参数添加到Net::SFTP.start调用中来重新启用 DSS 。根据 net-ssh文档,这将一直有效,直到 gem 版本 7 完全删除 DSS 支持。


推荐阅读