(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, 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.
| 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é,
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_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) | 
          
   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');
?>