connexion ssh avec clé publique

Petit nouveau ! | 9 Messages

13 févr. 2014, 12:06

bonjour,

je voudrais me connecter sur un serveur linux avec les clés privées et publiques.
Avec putty cela fonctionne correctement , je voudrais le faire en php, mais lorsque je lance le programme cela m'arrete le service apache sous XAMPP.

voici le code:
function my_ssh_disconnect($reason, $message, $language) {
    printf("Serveur deconnecte avec l'erreur code [%d] et le message: %s\n",
         $reason, $message);
}
$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('123.123.123.123',22, array('hostkey'=>'ssh-dss'), $callbacks);
if (!$connection) die('Échec de la connexion');
echo 'connexion OK<br>';

$fingerprint = 'B3797F068A9DDDDDD24423B484023';
if (ssh2_fingerprint($connection, SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX) != $fingerprint) 
    die ('<br>problème d\'identification du serveur: la signature reçue ne correspond pas à son empreinte enregistree!') ;
  
if (!ssh2_auth_pubkey_file($connection, 'monlogin',
                          'D:/xampplite-win32-1.5.4/xampplite/htdocs/www/cle_rsa/id_rsa.pub',
                          'D:/xampplite-win32-1.5.4/xampplite/htdocs/www/cle_rsa/id_rsa', 'monmotdepasse'))
    die("<br>Erreur lors de l'authentification par cle publique");
echo "<br>Authentification par cle publique reussie\n";
merci pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 févr. 2014, 20:17

salut,

as tu un message d'erreur dans le log du serveur ?

as tu openssl d'activé dans la configuration de php ?

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

14 févr. 2014, 11:28

salut,

as tu un message d'erreur dans le log du serveur ?

as tu openssl d'activé dans la configuration de php ?

@+
dans php.ini le fichier est bien activé
extension=php_openssl.dll

dans les logs il y a ceci

OPENSSL_Uplink(10115010,05): no OPENSSL_Applink
[Fri Feb 14 09:25:45 2014] [notice] Parent: child process exited with status 1 -- Restarting.
[Fri Feb 14 09:25:53 2014] [crit] (22)Invalid argument: unable to replace stderr with error_log
[Fri Feb 14 09:25:53 2014] [crit] (2)No such file or directory: unable to replace stderr with /dev/null
[Fri Feb 14 09:25:53 2014] [crit] (22)Invalid argument: unable to replace stderr with error_log
[Fri Feb 14 09:25:53 2014] [crit] (2)No such file or directory: unable to replace stderr with /dev/null
[Fri Feb 14 09:25:54 2014] [notice] Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_autoindex_color PHP/5.1.6 configured -- resuming normal operations
[Fri Feb 14 09:25:54 2014] [notice] Server built: Aug 13 2006 19:16:43
[Fri Feb 14 09:25:54 2014] [notice] Parent: Created child process 4404
[Fri Feb 14 09:25:57 2014] [notice] Child 4404: Child process is running
[Fri Feb 14 09:25:57 2014] [notice] Child 4404: Acquired the start mutex.
[Fri Feb 14 09:25:57 2014] [notice] Child 4404: Starting 250 worker threads.
[Fri Feb 14 09:25:57 2014] [notice] Child 4404: Starting thread to listen on port 80.
[Fri Feb 14 09:25:57 2014] [notice] Child 4404: Starting thread to listen on port 443.
OPENSSL_Uplink(10115010,05): no OPENSSL_Applink
[Fri Feb 14 10:26:39 2014] [notice] Parent: child process exited with status 1 -- Restarting.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 févr. 2014, 13:56

est ce que tu est certain de l'installation de php ? (tous les fichiers sont bien présent ?)

parce que la, en gros, l'appel à open ssl se vautre et du coup le serveur aussi, mais redémarre ...

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

14 févr. 2014, 16:25

est ce que tu est certain de l'installation de php ? (tous les fichiers sont bien présent ?)

parce que la, en gros, l'appel à open ssl se vautre et du coup le serveur aussi, mais redémarre ...

@+
on est j'amais certain de rien :D

sinon avec d'autre script j'arrive à exécuter des commandes en ssh , d'ailleurs la premiere partie du script fonctionne correctement.
c'est cette partie qui pose problème
f (!ssh2_auth_pubkey_file($connection, 'monlogin',
                          'D:/xampplite-win32-1.5.4/xampplite/htdocs/www/cle_rsa/id_rsa.pub',
                          'D:/xampplite-win32-1.5.4/xampplite/htdocs/www/cle_rsa/id_rsa', 'monmotdepasse'))
    die("<br>Erreur lors de l'authentification par cle publique");
echo "<br>Authentification par cle publique reussie\n";

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 févr. 2014, 22:03

essai de passer le serveur en mode debug http://httpd.apache.org/docs/current/logs.html

est ce que le niveau de report d'erreur de php est bien en E_ALL ? => http://www.php.net/manual/en/errorfunc. ... -reporting


@+
Il en faut peu pour être heureux ......