(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,
none
está 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');
?>