如何在scp模块中自动传递用户名和密码?

时间:2015-01-20 05:19:10

标签: perl copy username

I am copying the files from one host to another using:
 Net:scp::Except;
 here is my script

使用严格; 使用Net :: SCP :: Expect;

打印"输入用户名\ n&#34 ;; 我的$ username =<&gt ;;

打印"输入密码\ n&#34 ;; 我的$ pass =<&gt ;;

打印"输入主机名\ n&#34 ;; 我的$ host =<&gt ;;

我的$ src_path =" /&#34 ;; 我的$ dst_path =" /&#34 ;;

my $ scpe = Net :: SCP :: Expect-> new(user => $ username,password => $ pass,auto_yes =>' 1'); $ scpe-> scp($ host。":"。$ src_path,$ dst_path);

getting error like bad password

1 个答案:

答案 0 :(得分:1)

您正在从STDIN接收这些变量,并且它们都包含尾随\n。在使用之前,您需要chomp

chomp ($username,$pass,$host);
my $scpe = Net::SCP::Expect->new(user=>$username, password=>$pass, auto_yes=> '1'); 
$scpe->scp($host.":".$src_path, $dst_path);

Net :: SCP :: Expect使用从您的参数缝合在一起的命令行来运行scp程序。因此,如果不采取措施,它将被有效地截断为scp yourusername