Re: SSH Tunneling implementation

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
Cc: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>, Guillaume Lelarge <guillaume(at)lelarge(dot)info>, Magnus Hagander <magnus(at)hagander(dot)net>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: SSH Tunneling implementation
Date: 2012-07-19 13:00:43
Message-ID: CA+OCxowmg7Qu=Nc342U9RabL7PQgTHxFk174dJBn3J3qyvjZ9Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Thu, Jul 19, 2012 at 1:58 PM, Akshay Joshi
<akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>
>
> On Thu, Jul 19, 2012 at 3:33 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>
>> Hi
>>
>> On Thu, Jul 19, 2012 at 8:51 AM, Akshay Joshi
>> <akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>> > Hi
>> >
>> > I have added "libssh2" source code with pgAdmin3. Attached is the
>> > complete
>> > patch. I have modified the acinclude.m4 and configure.ac.in to build
>> > libssh2
>> > code.
>> > Added "config.rpath.in" which is required to build libssh2 source code.
>> >
>> > Please review and let me know the review comments.
>>
>> I get the following on the link step on Mac:
>>
>> ...
>> ui/xrcDialogs.o utils/csvfiles.o utils/factory.o utils/favourites.o
>> utils/misc.o utils/pgconfig.o utils/registry.o utils/sysLogger.o
>> utils/sysProcess.o utils/sysSettings.o utils/tabcomplete.o
>> utils/utffile.o utils/macros.o utils/sshTunnel.o libssh2/agent.o
>> libssh2/channel.o libssh2/comp.o libssh2/crypt.o libssh2/global.o
>> libssh2/hostkey.o libssh2/keepalive.o libssh2/kex.o
>> libssh2/knownhost.o libssh2/libgcrypt.o libssh2/mac.o libssh2/misc.o
>> libssh2/openssl.o libssh2/packet.o libssh2/pem.o libssh2/publickey.o
>> libssh2/scp.o libssh2/session.o libssh2/sftp.o libssh2/transport.o
>> libssh2/userauth.o libssh2/version.o -L/usr/local/lib -framework
>> IOKit -framework Carbon -framework Cocoa -framework System -framework
>> QuickTime -framework OpenGL -framework AGL -lwx_macud_stc-2.8
>> -lwx_macud_richtext-2.8 -lwx_macud_aui-2.8 -lwx_macud_xrc-2.8
>> -lwx_macud_qa-2.8 -lwx_macud_html-2.8 -lwx_macud_adv-2.8
>> -lwx_macud_core-2.8 -lwx_base_carbonud_xml-2.8
>> -lwx_base_carbonud_net-2.8 -lwx_base_carbonud-2.8 -arch i386
>> -L/usr/local/lib -lxml2 -lz -lpthread -liconv -lm -L/usr/local/lib
>> -lxslt -lxml2 -lz -lpthread -liconv -lm -L/usr/local/pgsql/lib -lpq
>> Undefined symbols for architecture i386:
>> "_OPENSSL_add_all_algorithms_noconf", referenced from:
>> _libssh2_init in global.o
>> "_RAND_bytes", referenced from:
>> _channel_x11_req in channel.o
>> _kexinit in kex.o
>> __libssh2_transport_send in transport.o
>> "_EVP_CIPHER_CTX_cleanup", referenced from:
>> _crypt_dtor in crypt.o
>> _aes_ctr_cleanup in openssl.o
>> "_EVP_aes_128_cbc", referenced from:
>> _libssh2_crypt_method_aes128_cbc in crypt.o
>> "_EVP_aes_192_cbc", referenced from:
>> _libssh2_crypt_method_aes192_cbc in crypt.o
>> "_EVP_aes_256_cbc", referenced from:
>> _libssh2_crypt_method_aes256_cbc in crypt.o
>> _libssh2_crypt_method_rijndael_cbc_lysator_liu_se in crypt.o
>> "_EVP_bf_cbc", referenced from:
>> _libssh2_crypt_method_blowfish_cbc in crypt.o
>> "_EVP_rc4", referenced from:
>> _libssh2_crypt_method_arcfour in crypt.o
>> _libssh2_crypt_method_arcfour128 in crypt.o
>> "_EVP_cast5_cbc", referenced from:
>> _libssh2_crypt_method_cast128_cbc in crypt.o
>> "_EVP_des_ede3_cbc", referenced from:
>> _libssh2_crypt_method_3des_cbc in crypt.o
>> "_EVP_get_digestbyname", referenced from:
>> _hostkey_method_ssh_rsa_signv in hostkey.o
>> _hostkey_method_ssh_dss_signv in hostkey.o
>> _diffie_hellman_sha1 in kex.o
>> _libssh2_sha1 in openssl.o
>> _libssh2_md5 in openssl.o
>> "_EVP_DigestInit", referenced from:
>> _hostkey_method_ssh_rsa_signv in hostkey.o
>> _hostkey_method_ssh_dss_signv in hostkey.o
>> _diffie_hellman_sha1 in kex.o
>> _libssh2_sha1 in openssl.o
>> _libssh2_md5 in openssl.o
>> "_EVP_DigestUpdate", referenced from:
>> _hostkey_method_ssh_rsa_signv in hostkey.o
>> _hostkey_method_ssh_dss_signv in hostkey.o
>> _diffie_hellman_sha1 in kex.o
>> _libssh2_sha1 in openssl.o
>> _libssh2_md5 in openssl.o
>> "_EVP_DigestFinal", referenced from:
>> _hostkey_method_ssh_rsa_signv in hostkey.o
>> _hostkey_method_ssh_dss_signv in hostkey.o
>> _diffie_hellman_sha1 in kex.o
>> _libssh2_sha1 in openssl.o
>> _libssh2_md5 in openssl.o
>> "_RSA_free", referenced from:
>> _hostkey_method_ssh_rsa_dtor in hostkey.o
>> _gen_publickey_from_rsa_evp in openssl.o
>> "_DSA_free", referenced from:
>> _hostkey_method_ssh_dss_dtor in hostkey.o
>> _gen_publickey_from_dsa_evp in openssl.o
>> "_BN_CTX_new", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> "_BN_new", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> _kex_method_diffie_hellman_group1_sha1_key_exchange in kex.o
>> _kex_method_diffie_hellman_group14_sha1_key_exchange in kex.o
>> _kex_method_diffie_hellman_group_exchange_sha1_key_exchange in kex.o
>> __libssh2_rsa_new in openssl.o
>> __libssh2_dsa_new in openssl.o
>> __libssh2_dsa_sha1_verify in openssl.o
>> ...
>> "_BN_rand", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> "_BN_mod_exp", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> "_BN_num_bits", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> __libssh2_dsa_sha1_sign in openssl.o
>> _gen_publickey_from_rsa in openssl.o
>> _gen_publickey_from_dsa in openssl.o
>> "_BN_bn2bin", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> __libssh2_dsa_sha1_sign in openssl.o
>> _write_bn in openssl.o
>> "_BN_bin2bn", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> _kex_method_diffie_hellman_group1_sha1_key_exchange in kex.o
>> _kex_method_diffie_hellman_group14_sha1_key_exchange in kex.o
>> _kex_method_diffie_hellman_group_exchange_sha1_key_exchange in kex.o
>> __libssh2_rsa_new in openssl.o
>> __libssh2_dsa_new in openssl.o
>> __libssh2_dsa_sha1_verify in openssl.o
>> ...
>> "_BN_clear_free", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> _kex_method_diffie_hellman_group1_sha1_key_exchange in kex.o
>> _kex_method_diffie_hellman_group14_sha1_key_exchange in kex.o
>> _kex_method_diffie_hellman_group_exchange_sha1_key_exchange in kex.o
>> __libssh2_dsa_sha1_verify in openssl.o
>> "_BN_CTX_free", referenced from:
>> _diffie_hellman_sha1 in kex.o
>> "_BN_set_word", referenced from:
>> _kex_method_diffie_hellman_group1_sha1_key_exchange in kex.o
>> _kex_method_diffie_hellman_group14_sha1_key_exchange in kex.o
>> "_EVP_sha1", referenced from:
>> _knownhost_check in knownhost.o
>> _mac_method_hmac_sha1_hash in mac.o
>> "_HMAC_Init", referenced from:
>> _knownhost_check in knownhost.o
>> _mac_method_hmac_sha1_hash in mac.o
>> _mac_method_hmac_md5_hash in mac.o
>> _mac_method_hmac_ripemd160_hash in mac.o
>> "_HMAC_Update", referenced from:
>> _knownhost_check in knownhost.o
>> _mac_method_hmac_sha1_hash in mac.o
>> _mac_method_hmac_md5_hash in mac.o
>> _mac_method_hmac_ripemd160_hash in mac.o
>> "_HMAC_Final", referenced from:
>> _knownhost_check in knownhost.o
>> _mac_method_hmac_sha1_hash in mac.o
>> _mac_method_hmac_md5_hash in mac.o
>> _mac_method_hmac_ripemd160_hash in mac.o
>> "_HMAC_CTX_cleanup", referenced from:
>> _knownhost_check in knownhost.o
>> _mac_method_hmac_sha1_hash in mac.o
>> _mac_method_hmac_md5_hash in mac.o
>> _mac_method_hmac_ripemd160_hash in mac.o
>> "_EVP_md5", referenced from:
>> _mac_method_hmac_md5_hash in mac.o
>> "_EVP_ripemd160", referenced from:
>> _mac_method_hmac_ripemd160_hash in mac.o
>> "_RSA_new", referenced from:
>> __libssh2_rsa_new in openssl.o
>> "_RSA_verify", referenced from:
>> __libssh2_rsa_sha1_verify in openssl.o
>> "_DSA_new", referenced from:
>> __libssh2_dsa_new in openssl.o
>> "_DSA_do_verify", referenced from:
>> __libssh2_dsa_sha1_verify in openssl.o
>> "_EVP_CIPHER_CTX_init", referenced from:
>> __libssh2_cipher_init in openssl.o
>> "_EVP_CipherInit", referenced from:
>> __libssh2_cipher_init in openssl.o
>> "_EVP_Cipher", referenced from:
>> __libssh2_cipher_crypt in openssl.o
>> "_EVP_aes_128_ecb", referenced from:
>> _aes_ctr_init in openssl.o
>> "_EVP_aes_192_ecb", referenced from:
>> _aes_ctr_init in openssl.o
>> "_EVP_aes_256_ecb", referenced from:
>> _aes_ctr_init in openssl.o
>> "_EVP_EncryptInit", referenced from:
>> _aes_ctr_init in openssl.o
>> "_EVP_CIPHER_CTX_set_padding", referenced from:
>> _aes_ctr_init in openssl.o
>> "_EVP_CIPHER_CTX_set_app_data", referenced from:
>> _aes_ctr_init in openssl.o
>> "_EVP_CIPHER_CTX_get_app_data", referenced from:
>> _aes_ctr_do_cipher in openssl.o
>> _aes_ctr_cleanup in openssl.o
>> "_EVP_EncryptUpdate", referenced from:
>> _aes_ctr_do_cipher in openssl.o
>> "_BIO_new_file", referenced from:
>> _read_private_key_from_file in openssl.o
>> __libssh2_pub_priv_keyfile in openssl.o
>> "_BIO_free", referenced from:
>> _read_private_key_from_file in openssl.o
>> __libssh2_pub_priv_keyfile in openssl.o
>> "_RSA_size", referenced from:
>> __libssh2_rsa_sha1_sign in openssl.o
>> "_RSA_sign", referenced from:
>> __libssh2_rsa_sha1_sign in openssl.o
>> "_DSA_do_sign", referenced from:
>> __libssh2_dsa_sha1_sign in openssl.o
>> "_DSA_SIG_free", referenced from:
>> __libssh2_dsa_sha1_sign in openssl.o
>> "_EVP_PKEY_get1_RSA", referenced from:
>> _gen_publickey_from_rsa_evp in openssl.o
>> "_EVP_PKEY_get1_DSA", referenced from:
>> _gen_publickey_from_dsa_evp in openssl.o
>> "_EVP_get_cipherbyname", referenced from:
>> __libssh2_pub_priv_keyfile in openssl.o
>> "_OpenSSL_add_all_ciphers", referenced from:
>> __libssh2_pub_priv_keyfile in openssl.o
>> "_BIO_ctrl", referenced from:
>> __libssh2_pub_priv_keyfile in openssl.o
>> "_PEM_read_bio_PrivateKey", referenced from:
>> __libssh2_pub_priv_keyfile in openssl.o
>> "_EVP_PKEY_free", referenced from:
>> __libssh2_pub_priv_keyfile in openssl.o
>> "_PEM_read_bio_DSAPrivateKey", referenced from:
>> __libssh2_dsa_new_private in openssl.o
>> "_PEM_read_bio_RSAPrivateKey", referenced from:
>> __libssh2_rsa_new_private in openssl.o
>> ld: symbol(s) not found for architecture i386
>> collect2: ld returned 1 exit status
>> make[3]: *** [pgadmin3] Error 1
>> make[2]: *** [all] Error 2
>> make[1]: *** [all-recursive] Error 1
>> make: *** [all] Error 2
>>
>>
> I have tried to run it on MAC but getting below error when run bootstrap
>
> configure.ac:85: error: possibly undefined macro: AC_LIB_HAVE_LINKFLAGS
> If this token and others are legitimate, please use m4_pattern_allow.
> See the Autoconf documentation.
>
> After some googling I have found it requires gettext to be installed. I
> did that but still facing the same problem. Is anybody have any idea how to
> solve this?

No idea - I don't get that error. FYI, I'm using autoconf 2.69 and
automake 1.12, both from MacPorts.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message pgAdmin Trac 2012-07-19 16:58:34 Re: [pgAdmin III] #49: Connect directly via an SSH tunnel
Previous Message Akshay Joshi 2012-07-19 12:58:15 Re: SSH Tunneling implementation