ruby-on-rails – Railsnet-ssh – ssh到远程服务器,在Heroku中使用私钥

ruby-on-rails – Railsnet-ssh – ssh到远程服务器,在Heroku中使用私钥,第1张

概述我正在尝试通过Heroku使用私钥ssh到远程服务器. 我正在使用这个gem https://github.com/net-ssh/net-ssh来完成请求,并且在本地工作正常. 一切正常在本地工作的原因是因为我输入了密码短语保存了私钥.当我部署到Heroku时,我无法像在PC上那样使用代理,因此连接失败. 我已使用net-ssh更改了连接上的设置,但未使用代理,但仍无法使其正常运行. 最糟糕的情 我正在尝试通过Heroku使用私钥ssh到远程服务器.

我正在使用这个gem https://github.com/net-ssh/net-ssh来完成请求,并且在本地工作正常.

一切正常在本地工作的原因是因为我输入了密码短语保存了私钥.当我部署到Heroku时,我无法像在PC上那样使用代理,因此连接失败.

我已使用net-ssh更改了连接上的设置,但未使用代理,但仍无法使其正常运行.

最糟糕的情况我将不得不在其他地方的PHP中创建一个单独的API调用来完成此连接,但我希望我可以通过Heroku中的rails应用程序使其工作.

这就是我目前正在做的事情:

options = {}    options[:key_data] = ENV['LANDING_PAGE_SSH_KEY']options[:keys_only] = trueoptions[:use_agent] = falseoptions[:verbose] = :deBUGoptions[:port] = '18765'options[:passphrase] = ENV['SSH_KEY_PAsspHRASE']Net::SSH.start(ENV['SERVER_HOSTname'],ENV['SERVER_USERname'],options) do |ssh|end

我已经在全局变量中输入了私钥以及我需要的所有其他内容.这也适用于本地而不使用代理但在Heroku上失败并显示以下消息:

[2017-07-21T19:20:35.506794 #4] DEBUG -- socket[383b2bc]: read 52 bytes2017-07-21T19:20:35.507070+00:00 app[web.1]: D,[2017-07-21T19:20:35.507016 #4] DEBUG -- socket[383b2bc]: received packet nr 3 type 6 len 282017-07-21T19:20:35.507262+00:00 app[web.1]: D,[2017-07-21T19:20:35.507210 #4] DEBUG -- net.ssh.authentication.session[3fd3f610f914]: trying none2017-07-21T19:20:35.507477+00:00 app[web.1]: D,[2017-07-21T19:20:35.507412 #4] DEBUG -- socket[383b2bc]: @R_689_4403@ packet nr 4 type 50 len 442017-07-21T19:20:35.507603+00:00 app[web.1]: D,[2017-07-21T19:20:35.507553 #4] DEBUG -- socket[383b2bc]: sent 68 bytes2017-07-21T19:20:35.536336+00:00 app[web.1]: D,[2017-07-21T19:20:35.536194 #4] DEBUG -- socket[383b2bc]: read 52 bytes2017-07-21T19:20:35.536472+00:00 app[web.1]: D,[2017-07-21T19:20:35.536422 #4] DEBUG -- socket[383b2bc]: received packet nr 4 type 51 len 282017-07-21T19:20:35.536573+00:00 app[web.1]: D,[2017-07-21T19:20:35.536526 #4] DEBUG -- net.ssh.authentication.session[3fd3f610f914]: allowed methods: publickey2017-07-21T19:20:35.536657+00:00 app[web.1]: D,[2017-07-21T19:20:35.536612 #4] DEBUG -- net.ssh.authentication.methods.none[3fd3f6103e84]: none Failed2017-07-21T19:20:35.536749+00:00 app[web.1]: D,[2017-07-21T19:20:35.536703 #4] DEBUG -- net.ssh.authentication.session[3fd3f610f914]: trying publickey2017-07-21T19:20:35.537566+00:00 app[web.1]: Enter passphrase for <key in memory>:Completed 500 Internal Server Error in 337ms (ActiveRecord: 1.4ms)2017-07-21T19:20:35.538404+00:00 app[web.1]: 2017-07-21T19:20:35.538406+00:00 app[web.1]: Errno::ENottY (Inappropriate ioctl for device):

有什么建议?

解决方法 在我的情况下,我需要将私钥添加到服务器的ssh设置

ssh-add ~/.ssh/path-to-private-key

它开始工作了.

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails / net-ssh – ssh到远程服务器,在Heroku中使用私钥全部内容,希望文章能够帮你解决ruby-on-rails – Rails / net-ssh – ssh到远程服务器,在Heroku中使用私钥所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1265696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存