免费注册 查看新帖 |

Chinaunix

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

用scp / SSH 不需要交互输入密码的Perl脚本该怎么写呢??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-04 18:10 |只看该作者 |倒序浏览
我用Net::SSH:erl

#! /use/bin/perl -w
use Net::SSH:erl

my $host = "p.desktop";
my $uname = "name";
my $passw = "passw";

my $ssh = Net::SSH:erl->new($host);
$ssh->login($uname, $passw);

...

以上程序是从本站上看来的,但运行报错误:
relocation error : /opt/third-party/lib/.../Math/GMP/GMP.so :
undefined symbol : mpz_init_set_str

知道是 mpz_init_set_str 没定义,可是不知道怎么处理,是我安装的版本有问题吗??(版本 5.6.0)

另外 Net::SCP 也能够设置用户名、密码么???
我看的资料里只看到设置用户名

各位高手一定要帮忙啊

论坛徽章:
0
2 [报告]
发表于 2006-07-05 00:03 |只看该作者
用Expect模块

举个例子:

  1.         yb_message "signing package $rpmfile";
  2.         my $exp = Expect->spawn('rpm','--addsign',
  3.                                 '--define',"_signature $_signature",
  4.                                 '--define',"_gpg_name $_gpg_name",
  5.                                 $_gpg_path?('--define',"_gpg_path $_gpg_path"):(),
  6.                                 $_gpgbin?('--define',"_gpgbin $_gpgbin"):(),
  7.                                 $rpmfile)
  8.             or die "spawn sign package command failed:$!";
  9.         $exp->expect(30,
  10.                      [qr/^Enter pass phrase:/ => sub { my $exp = shift;
  11.                                                        print '[SENDING PASSWORD]';
  12.                                                        $exp->send("$passphrase\n");
  13.                                                        exp_continue; }],
  14.                      );
  15.         return $exp->exitstatus();
复制代码


具体看Expect的手册

论坛徽章:
0
3 [报告]
发表于 2006-07-05 00:08 |只看该作者
如果不用Expect,看样子是你的Net::SSH:: perl安装有问题,是自己编译安装的吗?

论坛徽章:
0
4 [报告]
发表于 2006-07-05 17:18 |只看该作者
不是,是原来安装带的,不清楚是否编译过
如果重新安装的话,需要哪些步骤呢

论坛徽章:
0
5 [报告]
发表于 2006-07-07 17:22 |只看该作者

回复 1楼 wdhans 的帖子

HOwTO? => Using SSH/SCP + Perl without request of password.

One of the simplest ways is firstly use of ssh-keygen to generate pub.key in localhost
and copy this key to remotehost as authorized_keys, then you can use perl Module Net::SSH (simplest)
to access remotehost.

Step By step? If you are familiar with SSH, I can save my time.

Best,
    ulmer

-------
Just for fun
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP