ruby-on-rails - 如何在 ruby on rails 中的 Net::sftp 中使用 PRIVATE RSA 密钥文件
问题描述
我正在尝试与我的 azure 存储建立 sftp 连接。我有一个以开头的私钥文件
private_key = '-----BEGIN RSA PRIVATE KEY-----\nMnx......'
使用此 private_key,我尝试建立连接,例如
Net::SFTP.start('<remote-ip>', 'username',
:password => 'password',
:key_data => [ private_key ],
keys_only: true,
verify_host_key: :never) do |sftp|
data = sftp.download!("/somefile.txt")
p data
end
当我尝试使用这个密钥文件时,我遇到了一个异常
#<OpenSSL::PKey::PKeyError: Could not parse PKey: no start line>
但是,当我使用以以下格式开头的密钥文件时
-----BEGIN OPENSSH PRIVATE KEY-----
一切正常。
但我想使用新的私钥。这段代码会有什么问题?有没有办法指定要使用的私钥文件的类型?
解决方案
做这个:
在此操作调用之前,检查private_key
变量是否包含-----BEGIN OPENSSH PRIVATE KEY-----
行。如果不是,则将其添加到 private_key 变量中,或者简而言之,将 private_key 设置为您的 start 方法接受的格式。
推荐阅读
- flutter - 在带有颤振图的水平条形图上显示自定义目标线
- c++ - C++ 大数
- python - 熊猫读取 Json - 尾随数据
- jquery - jQuery 正则表达式替换和切换
- mysql - MySQL - 加入返回“首选行”
- angular - 角度材料选择和项目的动态加载
- reactjs - 在链接标签中使用 component={TouchableOpacity} 时收到错误
- image-processing - 如何为pygame处理照片?
- javascript - 为什么 Javascript 文件仅适用于“关于”?
- javascript - 在数组中复制到如何删除它 - JavaScript