. . . . . . . . . . . . . . . . . . . . . . . . . . . |
|
|
ssh2_connect
ssh2_connect (PECL) ssh2_connect --
Connexion à un serveur SSH
Descriptionresource 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().
Retour au chapitre Php
|
|