是否可以在Ruby或Python中创建SSH隧道而无需创建本地端口?

时间:2012-11-18 23:14:23

标签: python ruby ssh-tunnel

我想创建一个SSH隧道,用于与远程遗留应用程序安全地通信,但我不希望其他本地应用程序能够使用它。这是可能的Python和/或Ruby,可能使用隧道的内存句柄,可以像普通的套接字句柄一样写入和读取?

1 个答案:

答案 0 :(得分:1)

最新版本的OpenSSH支持-W标志,将stdio连接到远程tcp端口:

ssh ssh_host -W host:port

我不知道在Python或Ruby中,但在Perl中,您可以轻松地将此功能与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;