perl调用'ssh -f -N'..我应该使用Net :: Expect,system还是exec?

时间:2012-08-27 20:40:17

标签: perl ssh expect

我正在尝试使用perl自动执行一个进程,该进程基本上会telnet到一个系统,“ssh -f -N”再进两个,最后打开一个screen / tmux会话并运行sshuttle,然后断开与screen / tmux的连接。

如果我要使用“-f -N”选项运行ssh - 最好通过Net :: SSH :: Expect,Net :: Expect,system或exec来处理吗?

我关注Net :: SSH或Net :: Expect,因为我不确定一些事情,首先,我怎样才能让Net :: Expect / SSH认识到SSH会话成功了?也就是说,当我编写Net :: Expect并使用这些参数生成ssh会话,然后登录时,'expect'就没有更多的输出了。我希望依赖于预期超时之外的其他事情。

这有意义吗?我不确定我是否清楚地表达了我的问题。

如果我生成进入后台的ssh会话,我也不确定perl的行为方式。我的perl程序永远不会退出吗?等待后台的SSH会话结束?

由于这最后一个问题,我提出了额外的问题,即我是否应该考虑使用Net::Expect上的系统或执行调用。

1 个答案:

答案 0 :(得分:0)

您可以使用Net::OpenSSH,如果需要,可以与Expect集成。

编辑,呃,我错过了你通过telnet会话转发它。忽略上述内容。