Manuel PHP
Précédent |  | Suivant

# ssh2_connect

(PECL)

ssh2_connect -- Connexion à un serveur SSH

## Description

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

ssh2_connect() établit une connexion à un serveur SSH distant et retourne une ressource de connexion en cas de succès, `FALSE` sinon.

methods doit être un tableau associatif avec plus de quatre paramètres, comme décrit ci-dessous.

Tableau 1. methods doit être un tableau associatif avec n'importe quel ou tous les paramètres suivants.

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 cryptage, 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 cryptage, 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.

Tableau 2. 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 cryptage à 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**

> Crypt and MAC method "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.

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

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 callback 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)

Exemple 1. Ouverture d'une connexion forcant 3des-cbc lors de l'envoi de paquets, n'importe quel force aes cipher lors de la réception de paquets, aucune compression dans les deux directions, et change de clés Group1.
`<?php /* Notification à l'utilisateur si le serveur termine la connexion */ function my_ssh_disconnect($reason, $message, $language) { printf("Le serveur s'est déconnecté avec le code [%d] et le 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('Echec de la connexion'); ?>`

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

Voir aussi ssh2_fingerprint(), ssh2_auth_none(), ssh2_auth_password() et ssh2_auth_pubkey_file().

Précédent | Sommaire | Suivant
ssh2_auth_pubkey_file | Niveau supérieur | ssh2_exec