2014-01-16 89 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) 
相關問題