(PECL ssh2 >= 0.9.0)
ssh2_connect — Conexión a un servidor SSH
$host,$port = 22,$methods = ?,$callbacks = ?Establece una conexión a un servidor SSH remoto.
Una vez conectado, el cliente debe verificar la clave de host del servidor utilizando la función ssh2_fingerprint(), luego identificarse utilizando un password o una clave pública.
host
port
methods
methods debe ser un array asociativo de hasta
cuatro parámetros, como se describe a continuación. methods
puede contener cualquiera o todos los parámetros siguientes.
| Índice | Significado | Valores soportados * |
|---|---|---|
| kex | La lista de métodos de intercambio a anunciar, separados por una coma, por orden de preferencia. |
diffie-hellman-group1-sha1,
diffie-hellman-group14-sha1, y
diffie-hellman-group-exchange-sha1
|
| hostkey | La lista de métodos de claves de host a anunciar, separados por una coma, por orden de preferencia. |
ssh-rsa y
ssh-dss
|
| client_to_server | Array asociativo que contiene los códigos de los métodos de cifrado, compresión y mensajes de autenticación (MAC) preferidos para el envío de mensajes desde el cliente al servidor. | |
| server_to_client | Array asociativo que contiene los códigos de los métodos de cifrado, compresión y mensajes de autenticación (MAC) preferidos para el envío de mensajes desde el servidor al cliente. |
* - Los valores soportados dependen de los métodos soportados por la biblioteca. Consulte la documentación » libssh2 para más información.
| Índice | Significado | Valores soportados * |
|---|---|---|
| crypt | Lista de métodos de cifrado a anunciar, separados por una coma, por 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 métodos de compresión a anunciar, separados por una coma, por orden de preferencia. |
zlib y
none
|
| mac | Lista de métodos MAC a anunciar, separados por una coma, por orden de preferencia. |
hmac-sha1,
hmac-sha1-96,
hmac-ripemd160,
hmac-ripemd160@openssh.com, y
none**
|
Nota: Cifrado y método MAC "
none"
Por razones de seguridad,
noneestá desactivado por la biblioteca » libssh2 a menos que se active explícitamente durante la compilación utilizando las opciones apropiadas de ./configure. Consulte la documentación de la biblioteca para más información.
callbacks
callbacks debe ser un array asociativo
que contiene cualquiera o todos los parámetros siguientes.
| Índice | Significado | Prototipo |
|---|---|---|
| ignore |
Nombre de la función a llamar cuando se recibe un paquete
SSH2_MSG_IGNORE
|
void ignore_cb($message) |
| debug |
Nombre de la función a llamar cuando se recibe un paquete
SSH2_MSG_DEBUG
|
void debug_cb($message, $language, $always_display) |
| macerror |
Nombre de la función a llamar cuando se recibe un paquete pero el
código de mensaje de autenticación falla. Si la función de retrollamada
devuelve true, el error será ignorado, de lo contrario, la conexión terminará.
|
bool macerror_cb($packet) |
| disconnect |
Nombre de la función a llamar cuando se recibe un paquete
SSH2_MSG_DISCONNECT
|
void disconnect_cb($reason, $message, $language) |
Devuelve un recurso en caso de éxito, o false en caso de error.
Ejemplo #1 Ejemplo con ssh2_connect()
Apertura de una conexión forzando 3des-cbc al enviar paquetes, cualquier cifrado AES al recibir paquetes, ninguna compresión en ambas direcciones, y un intercambio de claves Group1.
<?php
/* Notificación al usuario si el servidor termina la conexión */
function my_ssh_disconnect($reason, $message, $language) {
printf("Servidor desconectado con código de razón [%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('Fallo en la conexión');
?>