Module: tools Branch: master Commit: ada73ac9601d41eb84849b564d61a3ab362ddb91 URL: http://source.winehq.org/git/tools.git/?a=commit;h=ada73ac9601d41eb84849b564...
Author: Francois Gouget fgouget@codeweavers.com Date: Tue Dec 11 17:55:09 2012 +0100
testbot/TestAgent: Automatically use the id_dsa and id_rsa keys for Net:SSH2.
Newer Net:SSH2 versions will automatically detect and use the id_dsa keys but older ones don't autodetect anything.
---
testbot/lib/WineTestBot/TestAgent.pm | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/testbot/lib/WineTestBot/TestAgent.pm b/testbot/lib/WineTestBot/TestAgent.pm index e04827a..cb63cfd 100644 --- a/testbot/lib/WineTestBot/TestAgent.pm +++ b/testbot/lib/WineTestBot/TestAgent.pm @@ -802,6 +802,21 @@ sub _Connect($) { $AuthOptions{$Key} = $Tunnel->{$Key} if (defined $Tunnel->{$Key}); } + # Old versions of Net::SSH2 won't automatically find DSA keys, and new ones + # still won't automatically find RSA ones. + if (defined $ENV{HOME} and !exists $AuthOptions{"privatekey"} and + !exists $AuthOptions{"publickey"}) + { + foreach my $key ("dsa", "rsa") + { + if (-f "$ENV{HOME}/.ssh/$key" and -f "$ENV{HOME}/.ssh/$key.pub") + { + $AuthOptions{"privatekey"} = "$ENV{HOME}/.ssh/$key"; + $AuthOptions{"publickey"} = "$ENV{HOME}/.ssh/$key.pub"; + last; + } + } + } # Interactive authentication makes no sense with automatic reconnects $AuthOptions{interact} = 0; if (!$self->{ssh}->auth(%AuthOptions))