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