PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ssh2_connect> <ssh2_auth_password
Last updated: Fri, 22 Aug 2008

view this page in

ssh2_auth_pubkey_file

(PECL ssh2:0.10-0.9)

ssh2_auth_pubkey_fileAuthenticate using a public key

Descripción

bool ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile [, string $passphrase ] )

Authenticate using a public key read from a file.

Lista de parámetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

pubkeyfile

privkeyfile

passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

Valores retornados

Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo.

Ejemplos

Example #1 Authentication using a public key

<?php
$connection 
ssh2_connect('shell.example.com'22, array('hostkey'=>'ssh-rsa'));

if (
ssh2_auth_pubkey_file($connection'username',
                          
'/home/username/.ssh/id_rsa.pub',
                          
'/home/username/.ssh/id_rsa''secret')) {
  echo 
"Public Key Authentication Successful\n";
} else {
  die(
'Public Key Authentication Failed');
}
?>



ssh2_connect> <ssh2_auth_password
Last updated: Fri, 22 Aug 2008
 
add a note add a note User Contributed Notes
ssh2_auth_pubkey_file
BlackJowy
11-Mar-2008 09:36
I tried for hours to have this function working under windows without sucess.

It seems that this function does not work with the 0.11 version of libssh2 but I'm not sure. What I'm sure is that it doesn't work with wamp or easyphp (or the last binary from pecl4win) and these three runs with v0.11.

Only solution seems to be linux (or another unix based distribution I guess), all has worked for me under linux with libssh2 v0.14. So if you're trying to have this function working under windows, just forget it for the moment.
tekiedude at gmail dot com
31-Jul-2007 01:45
This is probably incredibly insecure but if you are in a closed environment, you can run it at your own risk.

I was trying to get ssh access from server A to server B but server A was running apache as 'apache' and
I needed files on server B that were owned by root. So I needed some way for the apache user to connect
to server B as root.  Here's what I did (both servers running linux - specifically CentOS4):

1. ssh-keygen -t rsa -f id_rsa  generate with no passphrase
2. append the id_rsa.pub file to server B /root/.ssh/authorized_keys2
3. copy the id_rsa and id_rsa.pub files to a directory like /var/www/.ssh/
(happens to be apache's home dir on CentOS)
4. chown -R apache.apache /var/www/.ssh

Then you can connect like this:
$connection = ssh2_connect($server,22,array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection,'root',
'/var/www/.ssh/id_rsa.pub',
'/var/www/.ssh/id_rsa')) {
echo "success!";
}
else
{
echo "no success :-(";
}
d23d23 at gmail dot com
16-Feb-2007 05:21
The public key must be on one line starting with the key type, 1 space and followed by the keydata (no newlines) and not followed by comments. This is a limitation of libssh2, so remove any excess data from the file after creating it with your key generation tools.

So it would look something like this:

ssh-rsa <keydata>
andyc at opensense dot com
06-Jun-2006 04:48
The key files need to be in OpenSSH's format.

For example the pubkey file should look like this:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAo6uBphcbl
5iS7U0fjE1ZJ8ZPqYwezFbxyN13YYucrFDCbln9Q6S33lN
JMYKUY4711qzDOxQD0bratDQfHUl4waT35qI+NRQa2
B+UWHYaOhbt5FI0Ks7JXPxj3iJ/+joiKQW3Bj8eH8Nzg
sTx4tEVPD6QOHs682OhUNX6sqSnHA8= rsa-key-20060606

ssh2_connect> <ssh2_auth_password
Last updated: Fri, 22 Aug 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites