这是一个很长的镜头,但我正在尝试向 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。
我可以通过几种方式解决这个问题:
- 有没有办法用 Ruby 将密钥作为字符串传递
net/sftp
? - 有没有办法向 Heroku 添加公钥,以便
net/sftp
在尝试连接到远程服务器时使用它?
谢谢