On Wed, Dec 2, 2015 at 3:20 PM, Dave Page <dp...@pgadmin.org> wrote: > Hi > > On Wed, Dec 2, 2015 at 9:19 AM, Akshay Joshi < > akshay.jo...@enterprisedb.com> wrote: > >> Hi Dave >> >> I have updated the *libssh2* library with the latest available code on >> their git repository. The new code used >> "diffie-hellman-group-exchange-sha256" algorithm for >> key exchange and they also fixed some memory leak. I have verified it by >> putting the breakpoint in the libssh2 code, so when we called " >> libssh2_session_init()" it will automatically call "static int diffie_ >> hellman_sha256(...)" function, but I don't know exactly how to identify >> the key exchange method (sha1 or sha256) used by the latest libssh2 library. >> >> I have tested the pgadmin3 after updating the libssh2 library on CentOS >> 6.5 (64 bit) and it works fine. I have also modified the code to add >> human readable error message returned by the library. Attached is the >> patch file. Can you please review it and if it looks good can you please >> commit the code. >> > > I'm seeing the following build error on OS X 10.7: > > depbase=`echo libssh2/agent.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ > ccache gcc -Qunused-arguments -DHAVE_CONFIG_H -I. -I.. > -I../pgadmin/include/libssh2 -I../pgadmin/include > -I../pgadmin/include/libssh2 -I/usr/local/pgsql-9.5/include > -I/usr/local/pgsql-9.5/include/server -I/usr/local/pgsql-9.5/include > -DPG_SSL -DHAVE_CONNINFO_PARSE > -I/usr/local/lib/wx/include/mac-unicode-release-static-2.8 > -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES > -D__WXMAC__ -DEMBED_XRC -arch i386 -I/usr/include/libxml2 > -I/opt/local/include/libxml2 -DHAVE_OPENSSL_CRYPTO -O2 -MT libssh2/agent.o > -MD -MP -MF $depbase.Tpo -c -o libssh2/agent.o libssh2/agent.c &&\ > mv -f $depbase.Tpo $depbase.Po > In file included from ../pgadmin/include/libssh2/libssh2_priv.h:136, > from libssh2/agent.c:41: > ../pgadmin/include/libssh2/crypto.h:53: error: expected ‘)’ before ‘*’ > token > ../pgadmin/include/libssh2/crypto.h:69: error: expected ‘)’ before ‘*’ > token > ../pgadmin/include/libssh2/crypto.h:73: error: expected ‘)’ before ‘*’ > token > ../pgadmin/include/libssh2/crypto.h:78: error: expected declaration > specifiers or ‘...’ before ‘libssh2_rsa_ctx’ > ../pgadmin/include/libssh2/crypto.h:83: error: expected ‘)’ before ‘*’ > token > ../pgadmin/include/libssh2/crypto.h:115: error: expected ‘)’ before ‘*’ > token > ../pgadmin/include/libssh2/crypto.h:120: error: expected ‘)’ before ‘*’ > token > In file included from libssh2/agent.c:41: > ../pgadmin/include/libssh2/libssh2_priv.h:240: error: > ‘SHA256_DIGEST_LENGTH’ undeclared here (not in a function) > ../pgadmin/include/libssh2/libssh2_priv.h:245: error: expected > specifier-qualifier-list before ‘_libssh2_bn_ctx’ > ../pgadmin/include/libssh2/libssh2_priv.h:267: error: expected > specifier-qualifier-list before ‘_libssh2_bn’ > ../pgadmin/include/libssh2/libssh2_priv.h:604: error: ‘SHA_DIGEST_LENGTH’ > undeclared here (not in a function) > ../pgadmin/include/libssh2/libssh2_priv.h:899: error: expected > specifier-qualifier-list before ‘_libssh2_cipher_type’ > libssh2/agent.c: In function ‘agent_connect_unix’: > libssh2/agent.c:150: warning: assignment makes pointer from integer > without a cast > make[3]: *** [libssh2/agent.o] Error 1 > make[2]: *** [all] Error 2 > make[1]: *** [all-recursive] Error 1 > make: *** [all] Error 2 >
I have modified the configure.ac.in and added "-DLIBSSH2_OPENSSL" to solve the above. You need to run the configure command again. > > > >> >> Sven, how you have identified the key exchange algorithm used by libssh2, >> is there any way to identify using fingerprint or key?? >> >> On Mon, Nov 30, 2015 at 6:38 PM, Dave Page <dp...@pgadmin.org> wrote: >> >>> Ok, thanks Akshay. >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK:http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >>> On 30 Nov 2015, at 12:57, Akshay Joshi <akshay.jo...@enterprisedb.com> >>> wrote: >>> >>> Hi Dave >>> >>> On Mon, Nov 30, 2015 at 10:41 AM, Akshay Joshi <akshay.joshi@ >>> enterprisedb.com> wrote: >>> >>>> Hi Dave >>>> >>>> On Fri, Nov 27, 2015 at 3:01 PM, Dave Page <dp...@pgadmin.org> wrote: >>>> >>>>> On Fri, Nov 27, 2015 at 9:23 AM, Sven <svoop_6cedifw...@delirium.ch> >>>>> wrote: >>>>> >> The key exchange methods offered when opening an SSH tunnel are all >>>>> >> SHA1 and therefore too weak: >>>>> >> >>>>> >> [sshd] fatal: Unable to negotiate with xxx.xxx.xxx.xxx: no matching >>>>> >> key exchange method found. Their offer: >>>>> >> diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1, >>>>> >> diffie-hellman-group1-sha1 [preauth] >>>>> > >>>>> > Any news on this? If there's no easy way to add safer kexes, I >>>>> suggest >>>>> > you disable the SSH feature altogether. SHA1 is dead and IMO nobody >>>>> > should trust a connection established with SHA1 kexes in order to >>>>> talk >>>>> > to databases. >>>>> >>>>> Akshay, you know that code best of all. How do we enable safer kexes? >>>>> >>>> >>>> Today I'll look into it on priority and update accordingly. >>>> >>> >>> I have found that "diffie-hellman-group-exchange-sha256" support >>> has been added to the libssh2 code on September 24, it's not released yet. >>> Please check https://github.com/libssh2/libssh2/pull/48 . Today I have >>> tried to update the libssh2, but facing some compilation issues which needs >>> to be fixed. I am working on it and then check do we need to change our >>> logic or libssh2 will automatically used "diffie-hellman >>> -group-exchange-sha256". >>> >>> >>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> *Principal Software Engineer * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 976-788-8246* >>>> >>> >>> >>> >>> -- >>> *Akshay Joshi* >>> *Principal Software Engineer * >>> >>> >>> >>> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 976-788-8246* >>> >>> >> >> >> -- >> *Akshay Joshi* >> *Principal Software Engineer * >> >> >> >> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 976-788-8246* >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Principal Software Engineer * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246*