Net::OpenSSH模块的使用

参考http://blog.csdn.net/yasaken/article/details/7348441


本人在封装一个ssh模块的时候,碰到一个问题,要求目标主机可能是新主机,也就是说,可能之前没连接过,这是因为ssh会将对方主机的public key存储在/.SSH/known_host文件中,有时候又可能报错连接失败。


为什么一定要死磕Net::OpenSSH这个模块呢?因为,Net::SSH::Perl模块和Net::SSH::Expect模块都装不上,用的系统是suse 10,perl5.10,还是内网,虽然有minicpan,还是很多依赖关系解决不了。


言归正传:解决的方法就是在代码中ssh连接的时候加上

master_opts=>[-o=>‘StrictHostKeyChecking no’]的选项。


优缺点:

 ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

你可能感兴趣的:(Net::OpenSSH模块的使用)