Tag: ssh

使用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 = >> […]

使用Ruby在ftp站点上移动和重命名文件

我使用net-sftp gem将文件下载到内存: sftp = Net::SFTP.start(‘ftp.myapp.com’,’user_name’, :password => ‘password’) records = sftp.download!(“luigi/List.csv”) 然后我需要移动我的文件,位于luigi/List.csv远程并重命名。 我想把它移到这里: “luigi/archive/List_#{Time.now}.csv” 我想删除原始文件,位于luigi/List.csv 。 如何使用ruby 2.0.0和rails 4.0.0在我的FTP站点上移动,重命名和删除文件?

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

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

在rails应用程序的前端获取实时日志

在rails 3.x应用程序中,我使用net :: ssh并运行一些命令到远程pc。我想将实时日志显示给用户的browser.like,如果两个命令在net :: ssh中运行执行即echo “Hello” , echo “Bye”传递然后“Hello”应该在浏览器中显示,并在执行后立即完成。这是我用于ssh连接的代码,并在ruby on rails应用程序中运行命令 Net::SSH.start( @servers[‘local’] , @machine_name, :password => @machine_pwd, :timeout => 30) do |ssh| ssh.open_channel do |channel| channel.request_pty channel.exec(“echo ‘ssh started'”) channel.exec(“ruby -v”) channel.exec(“rails -v”) channel.exec(“echo ‘ssh Finished'”) channel.on_close do |ch| puts “****shell terminated****” end channel.on_eof do |ch| puts “****remote end is done sending data****” […]

Capistrano在ssh登录后更改用户 – 作为另一个用户部署

在我的staging.rb文件中,我需要连接“ubuntu”用户名 server ‘**.**.****.**’, user: ‘ubuntu’, roles: %w{web app db} 在我的deploy.rb中 set :deploy_to, -> { “/var/www/myuser/myuser.com/capi” } 服务器 var/www/myuser/myuser.com# ls -la total 32 drwxrwx— 8 myuser myuser 4096 Jul 9 14:54 . drwxrwx— 5 myuser myuser 4096 Feb 26 17:18 .. drwxrwx— 7 myuser myuser 4096 May 7 13:48 beta drwxr-xr-x 2 myuser myuser 4096 Jul […]

通过厨师部署时git错误

我正在尝试通过厨师代码部署rails app。 食谱包含代码 deploy_revision “testapp” do repo “REPO_URL” ssh_wrapper “/home/ubuntu/.ssh/chef_ssh_deploy_wrapper.sh” environment({ “RAILS_ENV” => “staging” }) deploy_to “/home/ubuntu/testapp” branch “master” user “ubuntu” group “ubuntu” scm_provider Chef::Provider::Git end 和sshwrapper文件包含 exec ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no github.com -i “/home/ubuntu/.ssh/id_rsa” “$@” 当我运行bootstrap 我得到的错误如下 STDERR:警告:永久性地将“github.com,192.30.252.129”(RSA)添加到已知主机列表中。 192.168.1.32权限被拒绝(publickey)。 192.168.1.32致命:无法从远程存储库读取。 192.168.1.32请确保您拥有正确的访问权限 192.168.1.32并且存储库存在。 192.168.1.32 —-结束输出git ls-remote“REPO_URL”master * —- 所以,无法弄清楚原因。 任何帮助,将不胜感激。

Capistrano 3部署要求SSH密码但不能输入密码

我正在尝试使用Capistrano 3来部署Rails 4应用程序。 #config valid only for Capistrano 3.1 lock ‘3.1.0’ set :application, ‘testapp’ set :scm, :git set :repo_url, ‘git@bitbucket.org:sergiotapia/testapp.git’ set :user, “deploy” # The user on the VPS server. set :password, “hunter2$$” set :use_sudo, false set :deploy_to, “/home/deploy/www/testapp” set :deploy_via, :remote_cache set :pty, true set :format, :pretty set :keep_releases, 1 set :rails_env, “production” set […]

Capistrano 3 SSHKit :: Runner :: ExecuteError:在host 代理上执行时发生exception无法使用请求的身份对数据进行签名

我将rails应用程序部署到ubuntu服务器时遇到以下错误,我已经正确设置了ssh密钥,我可以ssh到服务器但是当我尝试做的时候我得到以下内容 cap production deploy 这是错误消息 cap aborted! SSHKit::Runner::ExecuteError: Exception while executing on host xxxxxx.xxxxxxx.xxx: agent could not sign data with requested identity 自从我之前部署以来,我无法弄清楚我做错了什么,我只需要将我的应用程序更新为我所做的更改。 自从我上次部署以来,我没有更改deploy.rb,Capfile或deploy / production.rb文件

多个heroku帐户无法正常工作

我会非常详细,因为我按照相关问题的建议,但它不起作用。 我在Mac OS X 10.7上尝试让两个heroku帐户工作。 我们first这些帐户称为first和second 要开始清理,我删除了~.ssh/的键,运行heroku keys:remove两个帐户以删除现有键,然后运行ssh-add -D删除现有条目(换句话说:〜.ssh / is空的,除了known_hosts; heroku keys说我没有键,ssh-add -L表示没有条目。 我heroku login到第一个帐户,我运行这些: ssh-keygen -t rsa -C “first@example.com” -f ~/.ssh/id_rsa_first ssh-add ~/.ssh/id_rsa_first heroku keys:add ~/.ssh/id_rsa_first.pub 然后我heroku logout和heroku login到第二个帐户,我运行这些: ssh-keygen -t rsa -C “second@example.com” -f ~/.ssh/id_rsa_second ssh-add ~/.ssh/id_rsa_second heroku keys:add ~/.ssh/id_rsa_second.pub 在这两种情况下,我都会记下关键指纹,我称之为fingerprint_first和fingerprint_second 。 现在我将heroku login到first并且git push heroku master工作正常,然后heroku login到second个应用程序并且git push heroku master失败,出现错误 ! […]

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

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