免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2702 | 回复: 4
打印 上一主题 下一主题

请教使用Net::SSH::Perl模块ssh登录的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-11 21:33 |只看该作者 |倒序浏览
请大家先看看我写的代码lcg-info-dynamic-pbs-new.pl)
    my %SSHs;
    sub setSSH{
       chomp $_[0];
       my($url,$user,$passwd,$hostname) = split /\s+/, $_[0];
       my $ssh = Net::SSH:erl->new($url,protocol => 2, debug => 1);
       $ssh->login($user,$passwd);
       $SSHs{$hostname} = $ssh;       
   }
    while(<FILE>{
       &setSSH($_);
    }
在这段代码中,当我的FILE文件里头只有一行输入的时候(即只登录一个远程主机的时候),是没问题的,可是当我FILE文件里头有多行输入的时候,后面的登录就会报这样的错误:
    Net::SSH: Can't bind socket to port 1023: 地址已在使用 at lcg-info-dynamic-pbs-new
请问这是什么原因,难道不能使用同一个端口同时登录多个主机吗?如果是那样的话,请问得怎么解决这个问题?很急的一件事,还请各位达人们帮忙解决一下,谢谢了先

论坛徽章:
0
2 [报告]
发表于 2006-12-11 22:22 |只看该作者
原帖由 hyq_111 于 2006-12-11 21:33 发表
请大家先看看我写的代码:(lcg-info-dynamic-pbs-new.pl)
    my %SSHs;
    sub setSSH{
       chomp $_[0];
       my($url,$user,$passwd,$hostname) = split /\s+/, $_[0];
       my $ssh = Net::SSH:: ...


一个奇怪的问题,sshd默认是22端口吧,1023是你的本地端口么?(连到对方22的)
为什么会用低于1024的端口作为本地临时端口呢?IO::Socket似乎不是这样..
这里fork子进程看看能否解决吧.

论坛徽章:
0
3 [报告]
发表于 2006-12-11 22:42 |只看该作者
请能否写个提示性的代码给我看看吗?不好意思,我是perl新手,很多东西都不懂

论坛徽章:
0
4 [报告]
发表于 2006-12-11 23:31 |只看该作者
while(<FILE>) {
    chomp;
    next if fork;       # next if parent
    XXX->new(...);  # in child
    do something...
    exit 0;
}

give a try,good luck!

论坛徽章:
0
5 [报告]
发表于 2006-12-12 22:31 |只看该作者
thank you very much!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP