<pre name="code" class="python">Net::SSH::Perl - Perl client Interface to SSH   Perl SSH的客户端接口use Net::SSH::Perl;my $ssh = Net::SSH::Perl->new($host);$ssh->login($user, $pass);my($stdout, $stderr, $exit) = $ssh->cmd($cmd);As of version 1.00, Net::SSH::Perl supports both the SSH1 and
SSH2 protocols natively. The two protocols have different
module prerequisitives, so you need to decide which protocol(s)
you plan to use. If you use one or the other, only those modules
for your chosen protocol will be installed; if you choose both,
all of the supporting modules will be installed. Please choose
the protocols you'd like to use from the following list ("Both"
is the default).[1] SSH1[2] SSH2[3] Both SSH1 and SSH2版本1.00, Net::SSH::Perl 支持SSH1和SSH2协议。两个协议有不用的模块前提, 因此你需要确定哪些协议 你计划使用。如果你使用一个或者另一个,只有那些协议你选择的协议会被安装默认BOTH
Can't locate Net/SSH/Perl.pm in @INC (you may need to install the Net::SSH::Perl module) (@INC contains: /usr/local/perl/lib/site_perl/5.22.1/x86_64-linux /usr/loca-linux /usr/local/perl/lib/5.22.1 .) at a1.pl line 1.
那就是你的perl没找到SSH模块,你可以搜一下你的这个模块撞到哪里了,然后做个连接过去.find / -name SSH解决:
demo:/root/.cpan/build/Net-SSH-Perl-2.01-czM_pl/blib/lib/Net# cp -R SSH/ /usr/local/perl/lib/site_perl/5.22.1/x86_64-linux/Net/ demo:/root/auto# cat a1.pl
use Net::SSH::Perl;
my $host='192.168.32.79';
my $user='root';
my $passwd='1234567';
my $ssh = Net::SSH::Perl->new($host,port=>22);
$ssh->login($user,$passwd);
my ($stdout,$stderr,$exit) = $ssh->cmd("/sbin/ifconfig -a");
$ssh->cmd("exit");
if($stderr){
print "ErrorCode:$exit\n";
print "ErrorMsg:$stderr";
} else {
print $stdout;
}
exit $exit;
demo:/root/auto# perl a1.pl
eth2      Link encap:Ethernet  HWaddr 00:0C:29:93:33:89  inet addr:192.168.32.79  Bcast:192.168.32.255  Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fe93:3389/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:90162891 errors:0 dropped:0 overruns:0 frame:0TX packets:54468730 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:6508620253 (6.0 GiB)  TX bytes:4434025169 (4.1 GiB)lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:49500737 errors:0 dropped:0 overruns:0 frame:0TX packets:49500737 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:48929124401 (45.5 GiB)  TX bytes:48929124401 (45.5 GiB)描述:Net::SSH::Perl是一个all-Perl 模块实现一个SSH客户端, 兼容SSH-1和SSH-2协议。NET:SSH:Perl 让你简单的和安全的执行命令在远端的机器,接收输出,错误输出,远端命令的退出状态。它包含内置的支持各种认证方法(password 认证,RSA 询问响应 认证)它完全实现了I/O 缓存,packet传输,使用SSH协议的用户认证,并使用外部的Perl库 来处理所有数据在不安全的网络环境下的发送加密它也读取存在的SSH配置文件。使用Net::SSH::Perl 的一个优势封装实现ssh clients节约了处理的开销:你不需要fork和执行一个单独的进程来连接一个sshd.根据时间的总量和内存需要来fork一个进程, 这个是相当可观的,特别是 如果你需要运行在一个持久的Perl环境(mod_perl,比如)派生一个新的进程是一个消耗内部资源的过程。它还简化了处理使用基于密码的认证过程,当写一个封装ssh你可能需要使用Expect来控制ssh客户端,然后给它密码。Net::SSH::Perl  已经内置支持认证协议,因此不在有任何麻烦在任何外部进程通信的问题SSH2协议支持(目前Net::SSH::Perl版本是1.00) 是兼容SSH2 在OPENSSH,也应该完全兼容官方的SSH涉及。如果你找到一个SSH2 涉及不兼容Net::SSH::Perl, 请让我们知道如果你正在寻找SFTP支持,看一下Net::SFTP, 提供了功能齐全的SFTP实现,SFTP 需要SSH2协议。基本的使用:使用Net:SSH:Perl 是非常简单的:Net::SSH::Perl->new($host, %params)设置一个新的连接,  调用new方法,连接到$host 和返回一个 Net::SSH::Perl object.new方法接收下面的参数:protocol:协议你希望使用这个连接: 应该是2,1,'1,2' 或者'2,1'第一个说,比较简单的, "只有使用协议版本(SSH-2或者SSH-1,分别的)后面两个指定任何一个协议被使用,但是一个协议(在逗号分隔的列表中的第一个)是优先选择的。对于这个原因,它是安全的使用后面的2个协议,因为它们确保了任何的方式,你可以去连接,如果你的服务器不支持列出的第一个协议,第2个会被使用。(想比你的服务器将至少支持一个协议)默认值是'1,2' 为了兼容OpenSSH,这意味着客户端会使用SSH-1如果server支持SSH-1,当然,你也可以使用user/global 配置文件cipher指定加密密码的名字 如果你希望使用这个连接,这个鄙视是一个支持的密码,在SSH-1, 支持的加密的名字是IDEA,DES,DES3,和Blowfish;在SSH-2,支持的加密是 arcfour, blowfish-cbc, and 3des-cbc.默认的SSH-1 加密是IDEA,SSH-2 加密是3des-cbc这个模块,远程执行shell:demo:/root/auto# cat a1.pl
use Net::SSH::Perl;
my $host='192.168.32.79';
my $user='root';
my $passwd='1234567';
my $cmd='sh /root/auto/a1.sh';
my $ssh = Net::SSH::Perl->new($host,port=>22);
$ssh->login($user,$passwd);
my ($stdout,$stderr,$exit) = $ssh->cmd("$cmd");
$ssh->cmd("exit");
print "\$exit is $exit\n";
if($stderr){
print "ErrorCode:$exit\n";
print "ErrorMsg:$stderr";
} else {
print $stdout;
}
exit $exit;这个/root/auto/a1.sh 需要在192.168.32.79远端机器上,而不是本地机器上

转载于:https://www.cnblogs.com/zhaoyangjian724/p/6200100.html

Net::SSH::Perl 模块相关推荐

  1. Perl的Net::SSH::Perl模块实现远程登陆ssh

    执行cpan命令安装模 cpan install Net::SSH::Perl 选择SSH版本,直接默认即可 选择使用的加密方式,也是默认 默认回车同意安装 接下来你会看见很多地方让你选择yes或者是 ...

  2. Net::SSH::Perl 连接远程主机慢的原因

    发现自己写的跳板程序,连接总是很慢.慢到没法接受了,远程主机连接都要 10 多秒,只有自己动手来解决.因为我一直是使用的 Net::SSH::Perl .还是只能基于这个模块来修改.因为接口之类最完善 ...

  3. [经验总结]Perl模块使用 = 简短例子代码集合

    [原创] Perl模块使用 => 简短例子代码集合! http://www.chinaunix.net 作者:deathcult发表于:2003-09-04 14:59:54 [发表评论] [查 ...

  4. Perl模块使用 = 简短例子代码集合!

    Perl模块使用 => 简短例子代码集合! http://www.chinaunix.net/ 作者:deathcult 发表于:2003-06-06 17:32:55 如果你有模块使用范例(请 ...

  5. Perl 模块安装总结

    从 1994 年 10 月 17 日发布的 Perl 5.000 起,Perl 增加了模块的概念,用来提供面向对象编程的能力.这是 Perl 语言发展史上的一个里程碑.此后,广大自由软件爱好者开发了大 ...

  6. 下载perl的mysql模块_安装用于操作MySQL的Perl模块

    在我使用Webmin(version 1.480)管理FreeBSD主机上的MySQL数据库服务器时出现: "警告:您的系统未安装Perl 模块 DBI 和 DBD::mysql,Webmi ...

  7. 从cpan上安装perl模块

    CPAN是perl的一个第三方源码模块库,里面有上百万的perl模块,用来支撑perl强大的功能,从生物工程到天文计算,从宏观世界到原子力学,无所不有.为了很方便的安装perl模块,有人做了一个CPA ...

  8. [转移]安装 BugZilla 时 Perl 模块的安装

    [转移]安装 BugZilla 时 Perl 模块的安装 转移自自己原来在YourBlog上的Blog,写于2004-3-11 13:05:48 看了Jackey的"Windows下BugZ ...

  9. perl模块的安装,查询

    perl模块的安装,查询 linux下cpan安装: # perl -MCPAN -e shell             // 一路回车配置cpan,个别地方需要输入 cpan> instal ...

最新文章

  1. 【互联网今日大事儿】陌陌今日上市马云变亚洲首富!
  2. Matlab:精度控制
  3. git stash参数介绍
  4. C++ —— C++常量和变量
  5. 修复共享服务器,【转】Exadata存储服务器的紧急修复(rescue)经验分享
  6. python cad 二次开发bom_30.Python前端基础之BOM和DOM
  7. 各种经典java小游戏_Java是这个世界上最好的语言!
  8. 七夕过后,我用Python分析了大家单身的原因,结果令人震惊...
  9. 坐标字符NYOJ 298 点的变换 (矩阵快速幂)
  10. Qt下载安装教程,windows10亲测可用,版本5.12.11
  11. 2022/7/14小记
  12. 悉尼大学SOFT2201课业解析
  13. python如何开发网站_如何用Python写一个小网站?
  14. 顺丰快递查询接口的调用方法(附带源码)
  15. python写法和c很像_另一个Python和C程序的对比
  16. TortoiseSVN服务器端下载及使用方法
  17. AndroidStudio安装apk到vivo手机时提示安装失败
  18. 系统集成项目管理工程师学习
  19. 无法启动此程序因为计算机丢失msvcr110.dll,计算机中丢失msvcr110.dll怎么办
  20. 基于Halcon学习的二维码识别【七】2d_data_codes_rectify_symbol.hdev

热门文章

  1. PHP_define和const的区别/获取所有常量get_defined_constant()
  2. SUSE Linux SFTP服务器配置
  3. 利用UIWebView获取userAgent需要注意的地方
  4. 第49周星期二PD数据库逆向工程
  5. [转]数据库开发21条军规
  6. PHP配置问题:AppServ安装discuz出错 Fatal error:
  7. 流水线经典讲解!!!!!
  8. 7.Array 数组对象
  9. 第七章httpd.conf主配置文件的详解
  10. SHOP++ JTM使用帮助