aboutsummaryrefslogtreecommitdiff
path: root/lib/ssh.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2007-09-18 21:14:28 +0000
committerDaniel Stenberg <daniel@haxx.se>2007-09-18 21:14:28 +0000
commit45fd6685bdf6b223088f34c77c56eacb0e5182ed (patch)
treebf99cfa34d7c04eeff82c934aa2ebb22ddd6eef9 /lib/ssh.c
parent0159636373b5959e980824fd1933c79b18acedd8 (diff)
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.
Diffstat (limited to 'lib/ssh.c')
-rw-r--r--lib/ssh.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/ssh.c b/lib/ssh.c
index 50ec429b3..d95db32cd 100644
--- 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);