在Net::SCP中,我需要DSC或RSA密钥(即何时使用get或put函数)?我想知道scp服务可以在不传输文件的情况下使用。
答案 0 :(得分:3)
按the docs in CPAN,您甚至在导入该模块之前需要它,我引用:
“”” 问:如何使用Net :: SSH模块提供密码以在perl脚本中连接ssh?
答:你没有。使用RSA或DSA密钥。请参见ssh-keygen(1)联机帮助页。“”“
换句话说,NET::SCP
旨在通过预先生成和传播的私钥/公钥对与“无密码”SSH身份验证一起使用。
答案 1 :(得分:1)
由于Net::SCP是scp的包装器,因此您不需要(意味着您不能)向脚本提供密钥。您(或其他人)应该在尝试使用之前配置ssh来进行设置。
NET :: SCP并不意味着'ad hoc'。它需要ssh配置和密钥交换。
编辑纳入了ysth的评论
答案 2 :(得分:1)
如果您只想检查远程系统是否正在侦听ssh / scp端口,您可以尝试ping:
use Net::Ping;
$p = Net::Ping->new("tcp", 2);
$p->port_number(scalar(getservbyname("ssh", "tcp")));
if ( $p->ping( $hostname ) ) {
print "ok!";
}
如果你有密码或密码,你可以使用Net :: SSH或Net :: SSH :: Expect或Net :: SSH2或Net :: SSH :: Perl,并且想要验证你是否可以连接而不实际传输任何文件
答案 3 :(得分:1)
如果您计划使用密码验证使用SSH,请考虑Net::SSH::Perl。