(PECL ssh2 >= 0.9.0)
ssh2_connect — Connexion à un serveur SSH
$host,$port = 22,$methods = ?,$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.
host
port
methods
       methods doit être un tableau associatif d'au plus
       quatre paramètres, comme décrit ci-dessous. methods 
       peut contenir 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, etdiffie-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-rsaetssh-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.
| 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, etnone** | 
| comp | Liste des méthodes de compression à annoncer, séparées par une virgule, par ordre de préférence. | zlibetnone | 
| 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, etnone** | 
Note: Chiffrement et méthode MAC "
none"
Pour des raisons de sécurité,
noneest 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.
       
| Index | Signification | Prototype | 
|---|---|---|
| ignore | Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_IGNOREest reçu | void ignore_cb($message) | 
| debug | Nom de la fonction à appeler lorsqu'un paquet SSH2_MSG_DEBUGest 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_DISCONNECTest reçu | void disconnect_cb($reason, $message, $language) | 
   Retourne une ressource en cas de succès, ou false si une erreur survient.
  
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');
?>