[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Need Help in creating SSH Server using LIBSSH
[Thread Prev] | [Thread Next]
- Subject: RE: Need Help in creating SSH Server using LIBSSH
- From: Ashish Mangla <Ashish.Mangla@xxxxxxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Mon, 3 Jun 2013 12:29:56 +0000
- To: Andreas Schneider <asn@xxxxxxxxxxxxxx>, "libssh@xxxxxxxxxx" <libssh@xxxxxxxxxx>
Hello Andreas, Thanks for your suggestion. I have generated the public and private keys using GITBASH Tool. The below commands ssh-keygen -t dsa -f ssh_host_dsa_key -N '' --> Worked with GIT BASH ssh-keygen -t rsa -b 2048 -f ssh_host_rsa_key -N ''., --> It didn't worked with GIT BASH tool Let me know if you are using any other tools, I set the options as you explained in the mail. Below is the code ., #include<iostream> using namespace std; #include"libssh/libssh.h" #include"libssh/server.h" #include"libssh/callbacks.h" #include"libssh/legacy.h" #include"libssh/sftp.h" #include"libssh/ssh2.h" #define SSHD_USER "libssh" #define SSHD_PASSWORD "libssh" #ifndef KEYS_FOLDER #ifdef _WIN32 #define KEYS_FOLDER "C:\\Users\\inrasun3\\.ssh\\" #else #define KEYS_FOLDER "/etc/ssh/" #endif #endif const int port = 22; static int authenticate(ssh_session session); static int auth_password(const char *user, const char *password); void printerror(const char *pText, const char *pErrorInfo); int main(void) { int iError = -1; int iAuth = 0; ssh_session pSshSession = NULL; ssh_bind pSshBind = NULL; ssh_message pSshMsg = NULL; ssh_channel pSshChannel = NULL; iError = ssh_init(); if(iError == -1) printerror("SSH init failed", "Reason Unknown"); pSshSession = ssh_new(); //Create SSH session if(pSshSession == NULL) printerror("SSH session creation failed", ssh_get_error(pSshBind)); pSshBind = ssh_bind_new(); //create a bind object if(pSshBind == NULL) printerror("SSH session creation failed reason ", ssh_get_error(pSshBind)); iError = ssh_bind_options_set(pSshBind, SSH_BIND_OPTIONS_BINDPORT, &port); iError = ssh_bind_options_set(pSshBind, SSH_BIND_OPTIONS_DSAKEY, KEYS_FOLDER "ssh_host_dsa_key"); iError = ssh_bind_options_set(pSshBind, SSH_BIND_OPTIONS_RSAKEY, KEYS_FOLDER "id_rsa"); if(iError < 0 ) printerror("Bind options set failed ", ssh_get_error(pSshBind)); iError = ssh_bind_listen(pSshBind); if(iError < 0 ) printerror("Error listening to socket ", ssh_get_error(pSshBind)); cout<<"Started sample libssh sshd on port "<<port<<endl; cout<<"You can login as the user "<<SSHD_USER<<" with the password "<<SSHD_PASSWORD<<endl; iError = ssh_bind_accept(pSshBind, pSshSession); //ssh_bind_fd_toaccept(pSshBind); if(iError==SSH_ERROR) { printerror("Error accepting a connection " , ssh_get_error(pSshBind) ); } if (ssh_handle_key_exchange(pSshSession)) { printf("ssh_handle_key_exchange: %s\n", ssh_get_error(pSshSession)); return 1; } /* proceed to authentication */ iAuth = authenticate(pSshSession); if(!iAuth) { printerror("Authentication error: ", ssh_get_error(pSshSession)); ssh_disconnect(pSshSession); } ssh_disconnect(pSshSession); ssh_bind_free(pSshBind); ssh_finalize(); return 0; } Please let me know what I am missing. Regards Ashish -----Original Message----- From: Andreas Schneider [mailto:asn@xxxxxxxxxxxxxx] Sent: Sunday, June 02, 2013 11:32 PM To: libssh@xxxxxxxxxx Cc: Ashish Mangla Subject: Re: Need Help in creating SSH Server using LIBSSH On Thursday 30 May 2013 09:15:07 Ashish Mangla wrote: > Hi > > I have created a SSH server using latest release of LIBSSH library the > targeted environment is Windows 7 64-bit, Visual Studio 2010, but I am > not successful in getting it work. Despite of many trails still I am > getting a error "Could n't create BIO". I browsed through internet and > come to know that the key folder must have read access. This I checked it and there is > no problem in reading the problem ( I wrote a sample C++ program whether > I can open file or not. The program is successful in reading the file > (of course in Binary )). Now I am helpless in finding the reason for the error. > Here is what options I have set please let me know where I am doing wrong. > > If any sample program for SSH server on windows is really helpful. First you need to create a rsa and dsa host key. ssh-keygen -t dsa -f ssh_host_dsa_key -N '' ssh-keygen -t rsa -b 2048 -f ssh_host_rsa_key -N '' After that you need to set them with ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_DSAKEY, "/path/to/ssh_host_dsa_key"); ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_RSAKEY, "/path/to/ssh_host_rsa_key"); Have you done that? > I have set the bind options with DSA and RSA key and the folder name > given as "C:\Users\ravikumarS\.ssh\ida_rsa.pub". Well it expects a private key not a public key ... -- Andreas Schneider GPG-ID: F33E3FC6 www.cryptomilk.org asn@xxxxxxxxxxxxxx
Re: Need Help in creating SSH Server using LIBSSH | Andreas Schneider <asn@xxxxxxxxxxxxxx> |
Re: Need Help in creating SSH Server using LIBSSH | Andreas Schneider <asn@xxxxxxxxxxxxxx> |