打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Perl实现ssh自动登录 | Litvip Linux 爱好者

一,基于单纯的密码验证的情况:
1.安装Net::SSH::Perl模块,安装方法参照Perl模块安装
2.自动登录例子,我要用testuser用户登陆到服务器192.168.0.100执行df命令:

#!/usr/bin/perl -wuse 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 -wuse 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/
版权声明:本站文章均属原创,版权所有,如需转载,请以超链接形式注明作者和原始出处,否则将追究法律责任。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ruby Net SSH
mongo不同库之间多表导入导出
python3写的简单本地文件上传服务器
Java SSH远程执行Shell脚本实现(转)
SecureCRT
使用Linux的crontab调用shell中的scp自动备份mysql数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服