Rails 7 と Ruby 3 をサポートする Rails アプリケーションがあります。これは、Ubuntu 22.04、ruby 3.0.2p107、Rails 7.0.2.3 を搭載した開発マシンでうまく動作しています。
現在、Ubuntu 22.04 を使用して Rails アプリをサーバーにデプロイするために Capistrano (バージョン 3.17.0) をセットアップしようとしています。ただし、次のエラーが発生するため、これを行うことができません。
SSHKit::Runner::ExecuteError: Exception while executing as username@server: rsa#set_key= is incompatible with OpenSSL 3.0
Capistrano は、Ubuntu 22.04 のデフォルトの OpenSSL ライブラリである OpenSSL 3.0 と互換性がないようです。バグだと思いますが、それを報告する投稿は見つかりませんでした。回避策も見つかりませんでした。
OpenSSL 1.1.1 をインストールして問題を解決しようとしましたが、Rails アプリはまだ OpenSSL 3 を使用しています。おそらく解決策は、 –with-openssl-dir オプションを使用して OpenSSL 1.1.1 で Ruby 3 を再インストールすることかもしれません。
なにか提案を?
報告されたエラーは、rails net-ssh gem が OpenSSL 3.0 をサポートしていないことが原因でした。
幸いなことに、昨日 net-ssh gem の新しいバージョンがリリースされ、OpenSSL 3.0 のサポートが提供され、問題が修正されました。
基本的に追加するのは、
gem 'net-ssh', '7.0.0.beta1'
バンドルインストールを実行すると問題が解決されました。