[PECL-BUG] Bug #18557 [NEW]: ssh2_auth_pubkey_file() requires both public and private keys

[email protected] ("ron at roncemer dot com") 9 Sep 2010 20:20:07 -0000
Newsgroups php.pear.webmaster
Message-ID <[email protected]>
From:             ron at roncemer dot com
Operating system: Linux
Package version:  
PHP version:      5.3.2
Package:          Bug System
Bug Type:         Bug
Bug description:  ssh2_auth_pubkey_file() requires both public and private keys

Description:
------------
Every other ssh client I've ever dealt with, only requires 
the private key to authenticate to a remote server with 
ssh2.

Have a look at the ganymed Java SSH2 library, class name 
ch.ethz.ssh2.Connection, function signature "boolean 
authenticateWithPublicKey(java.lang.String user, 
java.io.File pemFile, java.lang.String password)".  All that 
is needed is the private-key pem file in order to 
authenticate.  I've been using this library for years in 
Java, and it works great.

What is the reason for requiring both the public and private 
keys for authenticating, when in reality only the private 
key is required?  The public key should be easily extracted 
from private key, and should be handled silently by PHP.

Also, have a look at ganymed Connection class, function 
signature "boolean 
authenticateWithPublicKey(java.lang.String user, char[] 
pemPrivateKey, java.lang.String password)".  This provides a 
way to pass in the private key as an array of char.  In PHP, 
this would be really useful.  You could store your private 
keys in a secured database and use it for all kinds of 
server authentication, automatic deployment, log file 
collection, automation.  The absence of this functionality 
in PHP actually presents a security risk, because to get it 
to work, you'd actually have to write your private key to a 
temp file, then delete the temp file when done.  Not as
secure as reading it from a string which came from a secure 
database.



-- 
Edit bug report at http://pecl.php.net/bugs/bug.php?id=18557&edit=1
--