when using key authentication for ssh, client only needs the private key. unfortunately, when configuring ssh items in zabbix, public key is required for some reason.
libssh2 should not require public key when compiled against openssl for some time now : http://www.libssh2.org/mail/libssh2-devel-archive-2010-12/0069.shtml
publickey - Path name of the public key file. (e.g. /etc/ssh/hostkey.pub). If libssh2 is built against OpenSSL, this option can be set to NULL.