use*_*945 2 ruby openssl net-ssh ubuntu-22.04
我正在使用 Ubuntu 22 和 OpenSSL 3
当我尝试使用私钥进行连接时,Ruby 的 Net/SSH 就不再工作。
Net::SSH.start X.X.X.X, "root"
/.rvm/gems/ruby-3.1.2/gems/net-ssh-7.0.1/lib/net/ssh/authentication/key_manager.rb:168:in `rescue in sign': the given identity is known, but the private key could not be loaded: OpenSSL::PKey::PKeyError (rsa#set_key= is incompatible with OpenSSL 3.0) (Net::SSH::Authentication::KeyManagerError)
/.rvm/gems/ruby-3.1.2/gems/net-ssh-7.0.1/lib/net/ssh/buffer.rb:266:in `set_key': rsa#set_key= is incompatible with OpenSSL 3.0 (OpenSSL::PKey::PKeyError)
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何有用的东西来解决这个问题。只要我使用密码连接,这似乎就可以工作,但是一旦我使用 PEM 密钥,这就会失败。
我在用着:
在“net-ssh”gem 中修复此问题之前,您可以解决它。对于此解决方案,您必须使用旧的 PEM 格式生成新的 ssh 密钥对。
注意:您可以使用此https://unix.stackexchange.com/questions/638043/how-to-convert-rfc4716-private-keys-to-pem-private将较新的格式转换为较旧的 PEM 格式-keys文章,但我没有测试它。我做了测试,目前正在使用下面的解决方案。
将现有密钥移至保存目录
cd ~
mkdir old_keys
mv id_rsa* old_keys
Run Code Online (Sandbox Code Playgroud)
使用旧的 PEM 格式生成新密钥。
ssh-keygen -m PEM
Run Code Online (Sandbox Code Playgroud)
这对我运行 Ruby (3.0.2-7ubuntu2.1) 和 net-ssh (7.0.1) 和 openssl (3.0.2-0ubuntu1.6) 的 Ubuntu 22.04 安装很有用
| 归档时间: |
|
| 查看次数: |
2188 次 |
| 最近记录: |