]> granicus.if.org Git - curl/commitdiff
Immanuel pointed out that public key SSH auth failed if no public/private
authorDaniel Stenberg <daniel@haxx.se>
Tue, 18 Sep 2007 21:14:28 +0000 (21:14 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 18 Sep 2007 21:14:28 +0000 (21:14 +0000)
key was specified and there was no HOME environment variable, and then it
didn't continue to try the other auth methods. Now it will instead try to
get the files id_dsa.pub and id_dsa from the current directory if none of
the two conditions were met.

CHANGES
RELEASE-NOTES
lib/ssh.c

diff --git a/CHANGES b/CHANGES
index cee4d48c80430e9a50088abd7c7060791c1f1cb4..f3a9ce7e5f869377a8ed7e14c6d137edce1a9e13 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,13 @@
 
                                   Changelog
 
+Daniel S (18 September 2007)
+- Immanuel pointed out that public key SSH auth failed if no public/private
+  key was specified and there was no HOME environment variable, and then it
+  didn't continue to try the other auth methods. Now it will instead try to
+  get the files id_dsa.pub and id_dsa from the current directory if none of
+  the two conditions were met.
+
 Dan F (17 September 2007)
 - Added hooks to the test suite to make it possible to test a curl running
   on a remote host.
index 059a4b6828750b0293714eb9ab478e715b5a839b..a10177b90e8910fd12c06de8a510680ac14b7186 100644 (file)
@@ -18,6 +18,7 @@ This release includes the following bugfixes:
  o curl-config --protocols now properly reports LDAPS, SCP and SFTP
  o ldapv3 support on Windows
  o ldap builds with the MSVC makefiles
+ o no HOME and no key given caused SSH auth failure
 
 This release includes the following known bugs:
 
index 50ec429b3ed477a6638b01f18666443d7372e4fd..d95db32cdc98debbe0617ccc57bffefe114f1b84 100644 (file)
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -407,6 +407,9 @@ static CURLcode ssh_statemach_act(struct connectdata *conn)
           sshc->rsa_pub = aprintf("%s", data->set.str[STRING_SSH_PUBLIC_KEY]);
         else if (home)
           sshc->rsa_pub = aprintf("%s/.ssh/id_dsa.pub", home);
+        else
+          /* as a final resort, try current dir! */
+          sshc->rsa_pub = strdup("id_dsa.pub");
 
         if (sshc->rsa_pub == NULL) {
           Curl_safefree(home);
@@ -420,6 +423,9 @@ static CURLcode ssh_statemach_act(struct connectdata *conn)
           sshc->rsa = aprintf("%s", data->set.str[STRING_SSH_PRIVATE_KEY]);
         else if (home)
           sshc->rsa = aprintf("%s/.ssh/id_dsa", home);
+        else
+          /* as a final resort, try current dir! */
+          sshc->rsa = strdup("id_dsa");
 
         if (sshc->rsa == NULL) {
           Curl_safefree(home);