【问题标题】:Store SSH Key on Heroku to Connect Rails App to Remote Thru SFTP在 Heroku 上存储 SSH 密钥以通过 SFTP 将 Rails 应用程序连接到远程
【发布时间】:2014-07-16 19:55:41
【问题描述】:

这是一个长镜头,但我正在尝试向 Heroku 添加一个 ssh 密钥,以用于通过 SFTP 连接到另一台服务器:

Net::SFTP.start(HOST, USER, password: PASSWORD, keys: ['yada.pem']) do |sftp|
  @sftp = sftp
end

我最初的解决方案是将 .ssh 目录推送到 repo 并将yada.pem 存储在那里。 keys 将包含此文件的路径。

有人告诉我,一个更安全的解决方案是将密钥存储在 Heroku 的环境变量中。问题是,这会将密钥存储为字符串,我无法真正将其传递给 SFTP.start。

我可以通过几种方式解决这个问题:

  1. 有没有办法通过 Ruby net/sftp 将密钥作为字符串传递?
  2. 有没有办法向 Heroku 添加公钥,以便 net/sftp 在尝试连接到远程服务器时使用它?

谢谢

【问题讨论】:

    标签: ruby heroku ssh-keys net-sftp


    【解决方案1】:

    您可以在键 :key_data 下的选项哈希中将键作为字符串传递(应该是一个字符串数组,其中每个元素都包含一个 PEM 格式的键)。

    Net::SFTP.start(HOST, USER, password: PASSWORD, key_data: ['PEM key as string']) do |sftp|
      @sftp = sftp
    end
    

    Net::SSH#startNet::SFTP#start 推迟)。

    【讨论】:

    • 谢谢,我在同一页上完全看到了keys,而忽略了key_data
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2014-10-13
    • 2022-07-11
    • 2017-04-17
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    相关资源
    最近更新 更多