diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2009-09-06 12:54:57 +0300 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2009-09-13 14:03:34 +0300 |
commit | f90ae73b6d0d8c6993a200045770344ce5252a92 (patch) | |
tree | ab23a3ee7a270cdf6519c237d274cf63ce3da9d0 /examples/connect_ssh.c | |
parent | 7fed54b1e574779dac61aafec6343a47bb116493 (diff) | |
download | libssh-f90ae73b6d0d8c6993a200045770344ce5252a92.tar.gz libssh-f90ae73b6d0d8c6993a200045770344ce5252a92.tar.xz libssh-f90ae73b6d0d8c6993a200045770344ce5252a92.zip |
Refactored the connect_ssh example function
into a new file
Diffstat (limited to 'examples/connect_ssh.c')
-rw-r--r-- | examples/connect_ssh.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/examples/connect_ssh.c b/examples/connect_ssh.c new file mode 100644 index 0000000..cfc6bb1 --- /dev/null +++ b/examples/connect_ssh.c @@ -0,0 +1,63 @@ +/* + * connect_ssh.c + * This file contains an example of how to connect to a + * SSH server using libssh + */ + +/* +Copyright 2009 Aris Adamantiadis + +This file is part of the SSH Library + +You are free to copy this file, modify it in any way, consider it being public +domain. This does not apply to the rest of the library though, but it is +allowed to cut-and-paste working code from this file to any license of +program. +The goal is to show the API in action. It's not a reference on how terminal +clients must be made or how a client should react. + */ + +#include <libssh/libssh.h> +#include "examples_common.h" +#include <stdio.h> + +ssh_session connect_ssh(const char *host, const char *user,int verbosity){ + ssh_session session; + ssh_options options; + int auth=0; + + options=ssh_options_new(); + if(user != NULL){ + if (ssh_options_set_username(options,user) < 0) { + ssh_options_free(options); + return NULL; + } + } + + if (ssh_options_set_host(options,host) < 0) { + ssh_options_free(options); + return NULL; + } + ssh_options_set_log_verbosity(options,verbosity); + session=ssh_new(); + ssh_set_options(session,options); + if(ssh_connect(session)){ + fprintf(stderr,"Connection failed : %s\n",ssh_get_error(session)); + ssh_disconnect(session); + return NULL; + } + if(verify_knownhost(session)<0){ + ssh_disconnect(session); + return NULL; + } + auth=authenticate_console(session); + if(auth==SSH_AUTH_SUCCESS){ + return session; + } else if(auth==SSH_AUTH_DENIED){ + fprintf(stderr,"Authentication failed\n"); + } else { + fprintf(stderr,"Error while authenticating : %s\n",ssh_get_error(session)); + } + ssh_disconnect(session); + return NULL; +} |