ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connectConecta a un servidor SSH

Descripción

ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] ) : resource

Establece 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.

Parámetros

host

port

methods

methods puede ser un array asociativo con, hasta 4 parámetros descritos aquí abajo.

methods puede ser un array asociativo con todos o alguno de los siguientes parámetros.
Í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.

client_to_server y server_to_client pueden ser un array asociativo con todos o algunos de los siguientes parámetros.
Índice Significado Valores soportados*
crypt Lista de métodos de cifrado a desvelar, separados por comas y en orden de preferencia. [email protected], 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, [email protected], 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.

Parámetros de devolución
Índice Significado Prototipo
ignore Nombre de la función a llamar cuando el paquete SSH2_MSG_IGNORE es recibido void ignore_cb($message)
debug Nombre de la función a llamar cuando el paquete SSH2_MSG_DEBUG es 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_DISCONNECT es recibido void disconnect_cb($reason, $message, $language)

Valores devueltos

Devuelve un recurso en caso de éxito, o FALSE en caso de error.

Ejemplos

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');
?>

Ver también