我对使用 Perl 编写脚本相当陌生。我正在尝试 ssh 进入服务器并执行一些命令。我必须提供用户名和密码。我尝试在 perl 中使用 Net::SSH::Expect ,但是当我运行我的 perl 程序时,我尝试了这个,
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
cpanm Net::SSH::Perl
Run Code Online (Sandbox Code Playgroud)
但仍然收到如下错误消息,
Can't locate Net/SSH/Expect.pm in @INC (you may need to install the Net::SSH::Expect module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /home/hsuan/inms/get/get_mac.plx line 9.
Run Code Online (Sandbox Code Playgroud)
BEGIN 失败 - 编译在 /home/hsuan/inms/get/get_mac.plx 第 9 行中止。
有没有比下载、解压、制作等更简单的安装方法?
您需要 Net::SSH::Expect,但您正在安装 Net::SSH::Perl。
Net::SSH::Perl和Net::SSH::Expect是不同的库。当 Perl 模块被命名为“Perl”时,仅意味着它是 100% Perl 并且不需要 C 编译器。
安装 Net::SSH::Expect,就像它说的那样。cpanm Net::SSH::Expect。
我必须提供用户名和密码
使用 ssh 密钥和 ssh 代理可以更好地解决此问题。