Hmmm ...
Couldn't establish SSH connection: unable to establish master SSH conn
+ection: the authenticity of the target host can't be established, the
+ remote host public key is probably not present on the '~/.ssh/known_
+hosts' file at RDF.pl line 14.
... actually this error message tells us a lot. It tells us that the
remote host public key is not in ~/.ssh/known_hosts file. After looking and
man ssh_config one can see that this can be controlled by the ssh client with the
StrictHostKeyChecking option.
From the ssh_config man page:
If this flag is set to “yes”, ssh(1) will never automatically add
host keys to the ~/.ssh/known_hosts file, and refuses to connect
to hosts whose host key has changed. This provides maximum pro‐
tection against trojan horse attacks, though it can be annoying
when the /etc/ssh/ssh_known_hosts file is poorly maintained or
when connections to new hosts are frequently made. This option
forces the user to manually add all new hosts. If this flag is
set to “no”, ssh will automatically add new host keys to the user
known hosts files. If this flag is set to “ask”, new host keys
will be added to the user known host files only after the user
has confirmed that is what they really want to do, and ssh will
refuse to connect to hosts whose host key has changed. The host
keys of known hosts will be verified automatically in all cases.
The argument must be “yes”, “no”, or “ask”. The default is
“ask”.
So you may want to disable StrictHostKeyChecking by doing something like:
$ssh = Net::OpenSSH->new($host,
master_opts => [-o => "StrictHostKeyChecking=no"],
...);