2014-01-16 58 views
0

我试图将本地端口的远程(ec2)端口转发到本地浏览器中的jobtracker在亚马逊ec2集群上运行。但无法转发远程端口。在窗口环境中无法使用ruby“net/ssh”gem将远程(ec2)端口转发到本地端口

这里是我的代码:

Net::SSH.start('ec2-23-23-4-229.compute-1.amazonaws.com' ,'hadoop' ,:keys =>"mykeypair.pem",:forward_agent => true) do |ssh| 
    ssh.forward.remote(9033, "localhost",9101,"ec2-23-22-4-249.compute-1.amazonaws.com") 
    ssh.loop { !ssh.forward.active_remotes.include?([9033, "localhost"]) } 
end 
+0

这并不直接回答你的问题,但可能的帮助。我所做的查看job trackers网页是通过ssh使用-D选项(socks proxy)连接到它:ssh -i ec2key root @ ec2instance -D20000。然后我在浏览器(localhost:20000)中配置了socks代理,并可以通过他们的私有IP连接到NameNode/JobTracker网页。 – facha

+0

找到解决方案。它可以帮助某人: ssh = Net :: SSH.start(dns,'hadoop',:keys => [“src /#{$ parameters_hash ['pem_file_name']}”],:forward_agent => true) ssh .forward.local(port_available,'localhost',9100) – Manohar

回答

0

根据原来的海报:

找到了解决办法。这可能帮助别人:

ssh=Net::SSH.start(dns, 'hadoop' ,:keys => ["src/#{$parameters_hash['pem_file_name']}"],:forward_agent => true) 
ssh.forward.local(port_available, 'localhost', 9100) 
相关问题