(PECL ssh2 >= 0.9.0)
ssh2_connect — Conecta a un servidor SSH
$host
   [, int $port = 22
   [, array $methods
   [, array $callbacks
  ]]] ) : resourceEstablece una conexión a un servidor SSH remoto.
Una vez conectado, el cliente debería verificar la clave de host del servidor usando ssh2_fingerprint(), y entonces, autenticarse usando la contreseña o la clave pública.
host
port
methods
       methods puede ser un array asociativo con, hasta 4 parámetros 
       descritos aquí abajo.
      
| Índice | Significado | Valores aceptados* | 
|---|---|---|
| kex | Lista de métodos de intercambio de claves a revelar, separados por comas en orden de preferencia. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, y diffie-hellman-group-exchange-sha1 | 
| hostkey | Lista de métodos clave-host a desvelar, separados por comas en orden de preferencia. | ssh-rsa y ssh-dss | 
| client_to_server | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server. | |
| server_to_client | Array asociativo que contiene el cifrado, la compresión, y las preferencias del método de código de autenticación de mensajes (MAC) para mensajes enviados del servidor al cliente. | 
* - Los valores soportados dependen de los métodos soportados por la librería subyacente. Mirar la documentación » libssh2 para obtener información adicional.
| Índice | Significado | Valores soportados* | 
|---|---|---|
| crypt | Lista de métodos de cifrado a desvelar, separados por comas y en orden de preferencia. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, y none** | 
| comp | Lista de los métodos de compresión a desvelar, separados por comas y en orden de preferencia. | zlib y none | 
| mac | Lista de métodos MAC a desvelar, separados por comas y en orden de preferencia. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, y none** | 
Nota: Método de encriptación y MAC "none"
Por razones de seguridad, none está deshabilitado por la librería subyacente » libssh2 a menos que esté habilitado explícitamente durante el tiempo de construcción usando la optión apropiada de ./configure. Lea la documentación de dicha librería para más información.
callbacks
       callbacks puede ser un array asociativo con todos o alguno de los siguientes parámtros.
       
| Índice | Significado | Prototipo | 
|---|---|---|
| ignore | Nombre de la función a llamar cuando el paquete SSH2_MSG_IGNOREes recibido | void ignore_cb($message) | 
| debug | Nombre de la función a llamar cuando el paquete SSH2_MSG_DEBUGes recibido | void debug_cb($message, $language, $always_display) | 
| macerror | Name of function to call when a packet is received but the
            message authentication code failed.  If the callback returns TRUE, the mismatch will be ignored, otherwise the connection
            will be terminated. | bool macerror_cb($packet) | 
| disconnect | Nombre de la función a llamar cuando el paquete SSH2_MSG_DISCONNECTes recibido | void disconnect_cb($reason, $message, $language) | 
   Devuelve un recurso en caso de éxito, o FALSE en caso de error.
  
Ejemplo #1 ssh2_connect()
Abre una conexión forzando 3des-cbc cuando envía paquetes, cualquier grado de cifrado aes cuando se reciben paquetes, sin comprensión ni dirección, y Group1 como clave de cambio.
<?php
/* Notifica al usuario si el servidor ha terminado la conexión */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Servidor desconectado con el siguiente código [%d] y mensaje: %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('Conexión fallida');
?>