Fonctions Shell2
PHP Manual

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connectConnexion à un serveur SSH

Description

resource ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] )

Établit une connexion à un serveur SSH distant.

Une fois connecté, le client doit vérifier la clé hôte du serveur en utilisant la fonction ssh2_fingerprint(), puis s'identifier en utilisant soit un mot de passe, soit une clé publique.

Liste de paramètres

host

port

methods

methods doit être un tableau associatif avec plus de quatre paramètres, comme décrit ci-dessous. methods peut contenir n'importe quel ou tous les paramètres suivants.

Options de connexion SSH
Index Signification Valeurs supportées *
kex La liste des méthodes d'échange à annoncer, séparées par une virgule, par ordre de préférence. diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, et diffie-hellman-group-exchange-sha1
hostkey La liste des méthodes de clés d'hôte à annoncer, séparées par une virgule, par ordre de préférence. ssh-rsa et ssh-dss
client_to_server Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le client vers le serveur.  
server_to_client Tableau associatif contenant les codes des méthodes de chiffrement, de compression et de messages d'identification (MAC) préférés pour l'envoi des messages depuis le serveur vers le client.  

* - Les valeurs supportées sont dépendantes des méthodes supportées par la bibliothèque. Voir la documentation » libssh2 pour plus d'informations.

client_to_server et server_to_client doivent être un tableau associatif avec n'importe quel ou tous les paramètres suivants.
Index Signification Valeurs supportées *
crypt Liste des méthodes de chiffrement à annoncer, séparées par une virgule, par ordre de préférence. rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, et none**
comp Liste des méthodes de compression à annoncer, séparées par une virgule, par ordre de préférence. zlib et none
mac Liste des méthodes MAC à annoncer, séparées par une virgule, par ordre de préférence. hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, et none**

Note: Chiffrement et méthode MAC "none"

Pour des raisons de sécurité, none est désactivé par la bibliothèque » libssh2 à moins qu'il soit activé explicitement durant la compilation en utilisant les options appropriées du ./configure. Voir la documentation sur la bibliothèque pour plus d'informations.

callbacks

callbackss doit être un tableau associatif contenant n'importe quel ou tous les paramètres suivants.

Paramètres de rappel
Index Signification Prototype
ignore Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_IGNORE est reçu void ignore_cb($message)
debug Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DEBUG est reçu void debug_cb($message, $language, $always_display)
macerror Nom de la fonction à appeler lorsqu'un paquet est reçu mais que le code message d'identification échoue. Si le la fonction de rappel retourne TRUE, l'erreur sera ignorée, sinon, la connexion se terminera. bool macerror_cb($packet)
disconnect Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DISCONNECT est reçu void disconnect_cb($reason, $message, $language)

Valeurs de retour

Retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ssh2_connect()

Ouverture d'une connexion forçant 3des-cbc lors de l'envoi de paquets, n'importe quel chiffrement AES lors de la réception de paquets, aucune compression dans les deux directions, et un échange de clés Group1.

<?php
/* Notification à l'utilisateur si le serveur termine la connexion */
function my_ssh_disconnect($reason$message$language) {
  
printf("Server disconnected with reason code [%d] and message: %s\n",
         
$reason$message);
}

$methods = array(
  
'kex' => 'diffie-hellman-group1-sha1',
  
'client_to_server' => array(
  
'crypt'            => '3des-cbc',
  
'comp'             => 'none'),
  
'server_to_client' => array(
  
'crypt'            => 'aes256-cbc,aes192-cbc,aes128-cbc',
  
'comp'             => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection ssh2_connect('shell.example.com'22$methods$callbacks);
if (!
$connection) die('Échec de la connexion');
?>

Voir aussi


Fonctions Shell2
PHP Manual