2013-08-02 44 views
0

我想设置和ssh我的Windows机器和EC2机器之间的隧道,我想用perl的,根据这个documentation,我必须使用./driver .pl脚本,我无法找到。如何从Perl的脚本从Windows机器SSH到EC2机器

我使用这个字符串ssh到我的机器使用命令行。

ssh -2 -p 22 [email protected] -i keyfile.ssh -L p8600/Localhost/3306

我想这个从这个post但我得到这个错误:

my $ssh_pid= open("ssh -2 -p 22 [email protected] -i keyfile.ssh -L p8600/Localhost/3306 |") or die;

Can't use string ("ssh -2 -p 22 [email protected]"...) as a symbol ref while " strict refs" in use at .\start.pl line 39. D:\DESKTOP\JEFF_SHIH\MAPPING_FILE_GENERATOR>

我怎么能翻译上面的字符串到Perl或修复上面的字符串得到错误的乘坐。 我安装了Net :: SSH :: Tunnel

谢谢!

+2

我怀疑'open'按照你期望的方式在Windows系统上工作。 – marderh

+2

Windows或* nix,'open'返回成功标志,而不是pid。 'open'的第一个参数总是一个文件句柄,而不是随机的shell命令。 'perldoc perlopentut','perldoc -f open'是学习如何使用它的好起点。 – tjd

回答

1

使用Net::SSH::Perl可避免棘手(在Windows上)依赖关系到ssh-binaries。该模块完全用Perl编写,因此它可以在任何平台上工作。 Net::SSH::Perl

+0

这是最好的选择!非常感谢Marderh! – mongotop

相关问题