Tag: ssh tunnel

使用Net :: SSH :: Gateway设置隧道(挂在.new)

就像在使用net / ssh / gateway建立到mysql的ssh隧道一样 ,我正在尝试使用Net :: SSH :: Gateway建立到远程服务器的隧道以进行端口转发。 但是我在这个过程中遇到了困难! 🙂 TL; DR 如何调整OpenSSL和Net :: SSH :: Gateway.new()以便隧道连接到远程服务器? 什么有用…… 我可以通过在后台启动ssh进程来设置隧道,如下所示: remote_addr = remote_user = ssh -f -N -L 3307:#{remote_addr}:3306 #{remote_user} 并在我的rails代码中: # config/database.yml … remote_db: adapter: mysql2 database: username: password: host: 127.0.0.1 port: 3307 这一切都有效。 什么不…… 但是当我尝试以下操作时(当然没有在后台启动ssh),它会因“拒绝连接”而失败: >> require ‘net/ssh/gateway’ >> remote_addr = >> […]

从Heroku通过SSH隧道连接远程数据库?

我正在考虑在Heroku上部署一个小型Rails应用程序。 为了省钱,我希望我的应用程序使用外部数据库(我可以自由访问),而不是Heroku托管的数据库。 问题是免费数据库只接受本地连接。 要从Heroku访问它,我需要通过SSH隧道这样做。 Heroku应用程序是否可以将其数据保存在通过SSH访问的外部数据库中? 如果是这样,怎么样? (对于奖励积分,这是第二个问题:这是个好主意吗?一方面,这个方案可以让我免于支付Heroku数据库。另一方面,这意味着必须加密我的所有数据库流量。我想象这会大大减慢我的网络动力,并减少他们可以服务的请求数量。我在数据库上节省的资金是否会用完支付更多的动力?我可能会提前做这个吗?)

是否有可能让Capistrano通过反向SSH隧道进行结账?

我正在开发一个驻留在公共主机上的应用程序,但其源代码必须保存在公司防火墙后面的Git存储库中。 我已经厌倦了通过scp部署的缓慢(复制整个存储库并在每次部署时通过SSH发送它),并且希望让远程主机简单地执行git pull更新。 问题是防火墙禁止传入SSH连接。 我可以设置从我的计算机到部署计算机的SSH隧道,并使用我的存储库作为git pull的来源吗? 毕竟, git是分布式的,因此我的副本与中央副本一样有效。 如果可以,那么tunnel命令和Capistrano配置是什么? 我认为隧道看起来像 ssh -R something:deployserver.com:something deploybot@deployserver.com

Capistrano,防火墙和隧道

我们正在使用Capistrano自动将新版本的PHP应用程序推送到生产服务器。 生产服务器(我们称之为生产)是公共的,而我们的存储库服务器(我们称之为repo)与我们自己的机器一起位于我们的公司防火墙后面。 默认配置的Capistrano将无法工作,因为生产无法与回购交谈。 我想知道是否有某种程度上我可以将capistrano设置为SSH以首先进行回购,然后通过SSH连接到生产,在端口上打开一个隧道,然后我可以使用它从生产回SSH到repo以从SCM获取更改。 我无法弄清楚如何设置或找出更好的解决方案。 想法? 编辑: 我试过这个: role :web, “deploy.com” namespace :deploy do task :remote_tunnel do run ‘Creating SSH tunnel…’ do |channel, stream, data| ssh = channel.connection ssh.forward.remote(22, ‘server.com’, 10000, ‘127.0.0.1’) ssh.loop {!ssh.forward.active_remotes.include?([10000, ‘127.0.0.1’])} end end end before “deploy:update_code”, “deploy:remote_tunnel” 但我一直收到这个错误: failed: “sh -c ‘Creating SSH tunnel…'” on deploy.com