perl 登录linux服务器,Perl实现ssh自动登录 | Litvip Linux 爱好者

一,基于单纯的密码验证的情况:

1.安装Net::SSH::Perl模块,安装方法参照Perl模块安装。

2.自动登录例子,我要用testuser用户登陆到服务器192.168.0.100执行df命令:

#!/usr/bin/perl -w

use strict;

use Net::SSH::Perl;

my $host = '192.168.0.100';

my $user = 'testuser';

my $password = '123456';

my $ssh = Net::SSH::Perl->new($host);

$ssh->login($user,$password);

my ($stdout,$stderr,$exit) = $ssh->cmd("df -h");

$ssh->cmd("exit");

if($stderr){

print "ErrorCode:$exit\n";

print "ErrorMsg:$stderr";

} else {

print $stdout;

}

exit $exit;

二,基于带密码(passphrase)的公钥密钥对认证的情况:

1.安装Net::OpenSSH模块,安装方法参照Perl模块安装,其实这个模块比上面那个模块更强大,密码登录的也可以用这个模块。

2.代码例子,还是用testuser用户登陆到服务器192.168.0.100执行df命令:

#!/usr/bin/perl -w

use strict;

use Net::OpenSSH;

my $host = '192.168.0.100';

my $user = 'testuser';

my $passphrase = '123123';

my $key = '/home/testuser/.ssh/id_rsa';

my %param = (

user => $user,

passphrase => $passphrase,

key_path => $key,

timeout => 10

);

my $ssh = Net::OpenSSH->new($host,%param);

my ($stdout,$stderr) = $ssh->capture2("df -h");

if($stdout){

print $stdout;

} else {

print $ssh->error;

$stderr and print $stderr;

}

非常简单的脚本,我就不解释了,你可以去CPAN网站上参照这些模块的使用说明,来填加更多的功能以满足你的需求。

本文作者:steptodream | 本文地址: http://www.litvip.com/545/

版权声明:本站文章均属原创,版权所有,如需转载,请以超链接形式注明作者和原始出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值