带着另一个 perl + SSH 问题回到这里。
这是我的情况:
我需要使用 SSH 从服务器 A 连接到服务器 B。在这个 SSH 连接中,我需要在其他命令旁边建立一些 SFTP 连接。关于身份验证,我需要使用公钥身份验证。所有这些都在 Perl 脚本中,服务器 A 和 B 都是窗口。
你知道任何匹配这些约束的 perl 模块吗?
我试过了:
- Net::SSH::Any,但是API没有提到公钥认证
- Net::OpenSSH,API 说它不能在 Windows 上运行
- Net::SSH::Perl,API 提到了私钥的使用。当我尝试通过它时,它失败了(下面的代码)。如果我尝试使用 Putty,它可以工作。
额外的问题:我读到存储私钥(在我的情况下是在服务器 A 上)根本不安全(我明白为什么),有没有办法避免这种情况?
代码:
my $ssh = Net::SSH::Perl->new("server-ip", identity_files => [ 'path-to-private-key' ], option => ["BatchMode yes"]);
$ssh->login('login');