http://qs321.pair.com?node_id=1012827


in reply to Net::SCP::Expect RSA Fingerprint Problem

If the option StrictHostKeyChecking=no is passed to OpenSSH ssh client and no key exists on the known_hosts file for the target host, it will accept as good (and remembered for future connections) the first one received from the remote host.

Though, I don't see how extra options for ssh can be passed through Net::SCP::Expect.

Anyway, you can use Net::OpenSSH instead:

$ssh = Net::OpenSSH->new($host, user => $user, password => $password, master_opts => [-o => 'StrictHostKeyChecking= +no']); $ssh->scp_put(...); $ssh->scp_get(...);

Note that disabling strict host key checking has some security implications that you should be aware of.

Replies are listed 'Best First'.
Re^2: Net::SCP::Expect RSA Fingerprint Problem
by anshumangoyal (Scribe) on Jan 11, 2013 at 08:41 UTC
    Even Net::SCP::Expect has this option. This is how you pass this:
    my $scp_exp = Net::SCP::Expect->new( host => $host, user => $user, password => $pass, timeout => undef, auto_yes => 1, recursive => 1, option => 'StrictHostKeyCheck +ing=no' );
    Thanks for the Great Help. This worked like a charm!!
      I must admit I do like to see feedback from the original question poster indicating which solution to the problem actually worked for them. Thanks for updating us.
      A Monk aims to give answers to those who have none, and to learn from those who know more.
      How can I give the options 'StrictHostKeyChecking=no' and 'UserKnownHostsFile=/dev/null'? auto_yes => 1 is working only with option => 'StrictHostKeyChecking=no'.