2012-11-18 46 views
3

我想創建一個SSH通道用於與遠程遺留應用程序安全地通話,但我不希望其他本地應用程序能夠使用它。這是可能的Python和/或Ruby,也許使用內存句柄的隧道,可以寫入和讀取像一個正常的套接字句柄?是否可以在不創建本地端口的情況下在Ruby或Python中創建SSH隧道?

+0

您的代碼將如何與遠程應用程序通話? – Reactormonk

+2

通過控制對本地隧道端口的訪問,你應該可以使用'iptables'來做到這一點:[iptables/pf rule只允許XY application/user?](http://unix.stackexchange.com/questions/12499/ iptables -pf-rule-to-only-allow-xy-application-user) –

+0

你可以看一下https://github.com/apenwarr/sshuttle,他分解了一個TCP流。 – Reactormonk

回答

1

最新的OpenSSH版本支持-W標誌標準輸入輸出連接到遠程TCP端口:

ssh ssh_host -W host:port 

我不知道在Python或Ruby,但在Perl中,你可以easyly使用此功能Net::OpenSSH。例如:

use Net::OpenSSH; 
my $ssh = Net::OpenSSH->new($host); 
my $out = $ssh->capture({tunnel => 1, 
         stdin_data => "GET/HTTP/1.0\n\n" }, 
         'www.google.com', 80); 

print $out; 
+0

這看起來很有希望......我會盡快給它一個。謝謝! – Bryan

+1

嗯,我不再需要這樣做,所以我一直無法放棄它。不過,我會接受它作爲我的問題的答案,因爲我確定可以從Ruby和Python訪問STDIN和STDOUT。 :) – Bryan

相關問題