diff options
author | Ruben Garcia Azuara <rubenga@tid.es> | 2010-04-06 20:07:01 +0200 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2010-04-07 11:29:47 +0200 |
commit | 5a2abd34ce9ad97c69906c5fb7b07e26e96fceaa (patch) | |
tree | da155233397d23cd1f8d0f76b0108570c61079e7 /libssh/config.c | |
parent | 14eb593af3c41ea439f01d34aaae497d8420f316 (diff) | |
download | libssh-5a2abd34ce9ad97c69906c5fb7b07e26e96fceaa.tar.gz libssh-5a2abd34ce9ad97c69906c5fb7b07e26e96fceaa.tar.xz libssh-5a2abd34ce9ad97c69906c5fb7b07e26e96fceaa.zip |
Added support for StrictHostKeyChecking and UserKnownHostsFile parameters.
Added OpenSSH parameters to libssh:
- StrictHostKeyChecking
- UserKnownHostsFile
This parameters are useful to avoid checking the fingerprint. Eg:
~/.ssh/config:
Host 192.10.20.30
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Signed-off-by: Ruben Garcia Azuara <rubenga@tid.es>
Signed-off-by: Andreas Schneider <mail@cynapses.org>
Diffstat (limited to 'libssh/config.c')
-rw-r--r-- | libssh/config.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/libssh/config.c b/libssh/config.c index beb21fc5..ae794bdc 100644 --- a/libssh/config.c +++ b/libssh/config.c @@ -38,7 +38,9 @@ enum ssh_config_opcode_e { SOC_CIPHERS, SOC_COMPRESSION, SOC_TIMEOUT, - SOC_PROTOCOL + SOC_PROTOCOL, + SOC_HOSTKEYCHECK, + SOC_KNOWNHOSTS }; struct ssh_config_keyword_table_s { @@ -56,6 +58,8 @@ static struct ssh_config_keyword_table_s ssh_config_keyword_table[] = { { "compression", SOC_COMPRESSION }, { "connecttimeout", SOC_TIMEOUT }, { "protocol", SOC_PROTOCOL }, + { "stricthostkeychecking", SOC_HOSTKEYCHECK }, + { "userknownhostsfile", SOC_KNOWNHOSTS }, { NULL, SOC_UNSUPPORTED } }; @@ -276,6 +280,18 @@ static int ssh_config_parse_line(ssh_session session, const char *line, ssh_options_set(session, SSH_OPTIONS_TIMEOUT, &i); } break; + case SOC_HOSTKEYCHECK: + i = ssh_config_get_yesno(&s, -1); + if (i >= 0 && *parsing) { + ssh_options_set(session, SSH_OPTIONS_HOSTKEYCHECK, &i); + } + break; + case SOC_KNOWNHOSTS: + p = ssh_config_get_str(&s, NULL); + if (p && *parsing) { + ssh_options_set(session, SSH_OPTIONS_KNOWNHOSTS, p); + } + break; case SOC_UNSUPPORTED: fprintf(stderr, "Unsupported option: %s, line: %d\n", keyword, count); break; |