summaryrefslogtreecommitdiff
path: root/libavformat/libssh.c
diff options
context:
space:
mode:
authorLukasz Marek <lukasz.m.luki@gmail.com>2013-12-28 19:34:29 +0100
committerLukasz Marek <lukasz.m.luki@gmail.com>2013-12-29 16:24:07 +0100
commit8ba77dfbc2e04c6d1070a8ea57f3dbbf477b95a7 (patch)
tree215a6609677106c92bc68adf6f93c4214911056a /libavformat/libssh.c
parent247a8fa70f9d7f1cf47ff28c10b4569ff9c4c6a9 (diff)
lavf/libssh: improve authentication
- Add authentication using keys - Provide better message on fail Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Diffstat (limited to 'libavformat/libssh.c')
-rw-r--r--libavformat/libssh.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libavformat/libssh.c b/libavformat/libssh.c
index e4d42678c1..aa9b060ee3 100644
--- a/libavformat/libssh.c
+++ b/libavformat/libssh.c
@@ -91,10 +91,13 @@ static int libssh_open(URLContext *h, const char *url, int flags)
goto fail;
}
- if (pass && ssh_userauth_password(s->session, NULL, pass) != SSH_AUTH_SUCCESS) {
- av_log(h, AV_LOG_ERROR, "Error authenticating with password: %s\n", ssh_get_error(s->session));
- ret = AVERROR(EACCES);
- goto fail;
+ if (ssh_userauth_autopubkey(s->session, pass) != SSH_AUTH_SUCCESS) {
+ av_log(s, AV_LOG_DEBUG, "Authentication using public key failed, trying password method.\n");
+ if (ssh_userauth_password(s->session, NULL, pass) != SSH_AUTH_SUCCESS) {
+ av_log(h, AV_LOG_ERROR, "Authentication failed.\n");
+ ret = AVERROR(EACCES);
+ goto fail;
+ }
}
if (!(s->sftp = sftp_new(s->session))) {