繁体   English   中英

由于与 OpenSSL 3.0 不兼容,Capistrano 无法部署 rails 应用程序

[英]Capistrano fail to deploy rails app due to incompatibility with OpenSSL 3.0

我有一个带有 Rails 7 和 Ruby 3 支持的 rails 应用程序,它在我的开发机器上运行良好,使用 Ubuntu 22.04、Z58E53D1324EEF6265FDB907B08ED9AADFZ 7.3。

现在我正在尝试设置 Capistrano(版本 3.17.0),以便将 rails 应用程序部署到具有 Ubuntu 22.04 的服务器。 但是,由于以下错误,我无法这样做:

SSHKit::Runner::ExecuteError: Exception while executing as username@server: rsa#set_key= is incompatible with OpenSSL 3.0

Capistrano 似乎与 OpenSSL 3.0 不兼容,这是 Ubuntu 22.04 中的默认 OpenSSL 库。 我想这是一个错误,但我没有找到任何报告它的帖子。 我也没有找到任何解决方法。

I tried to fix the issue by installing OpenSSL 1.1.1 but the rails app still uses OpenSSL 3. Perhaps a solution could be to reinstall ruby 3 with OpenSSL 1.1.1 using the --with-openssl-dir option.

有什么建议吗?

报告的错误是由于 rails net-ssh gem 不支持 OpenSSL 3.0。

幸运的是,昨天发布了新版本的 net-ssh gem,提供了 OpenSSL 3.0 支持,从而解决了这个问题。

基本上,添加

gem 'net-ssh', '7.0.0.beta1'

并运行 bundle install 解决了这个问题。

我厌倦了添加gem 'net-ssh', '7.0.0.beta1'但我仍然遇到同样的错误。

capistrano 正在使用我来自~/.ssh/id_rsa的 RSA 密钥。

我切换到使用 AWS 提供的 pem 文件:

  • 从 pem 文件ssh-keygen -y -f in.pem > out.pub
  • 在服务器上编辑~/.ssh/authorized_keys以添加来自out.pub的公钥
  • cap production deploy :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM