php8.5
Home/ Manual/ ssh2 / functions/ ssh2_connect

ssh2_connect

PHP function Edit on GitHub ✎

(PECL ssh2 >= 0.9.0)

Connect to an SSH server

Description

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

Establish a connection to a remote SSH server.

Once connected, the client should verify the server's hostkey using ssh2_fingerprint(), then authenticate using either password or public key.

Parameters

host
port
methods

methods may be an associative array with up to four parameters as described below.

IndexMeaningSupported Values*
kexList of key exchange methods to advertise, comma separated in order of preference.diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, and diffie-hellman-group-exchange-sha1
hostkeyList of hostkey methods to advertise, comma separated in order of preference.ssh-rsa and ssh-dss
client_to_serverAssociative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server.
server_to_clientAssociative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from server to client.

* - Supported Values are dependent on methods supported by underlying library. See libssh2 documentation for additional information.

IndexMeaningSupported Values*
cryptList of crypto methods to advertise, comma separated in order of preference.rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, and none**
compList of compression methods to advertise, comma separated in order of preference.zlib and none
macList of MAC methods to advertise, comma separated in order of preference.hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, and none**
Note

For security reasons, none is disabled by the underlying libssh2 library unless explicitly enabled during build time by using the appropriate ./configure options. See documentation for the underlying library for more information.

callbacks

callbacks may be an associative array with any or all of the following parameters.

IndexMeaningPrototype
ignoreName of function to call when an SSH2_MSG_IGNORE packet is receivedvoid ignore_cb($message)
debugName of function to call when an SSH2_MSG_DEBUG packet is receivedvoid debug_cb($message, $language, $always_display)
macerrorName 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)
disconnectName of function to call when an SSH2_MSG_DISCONNECT packet is receivedvoid disconnect_cb($reason, $message, $language)

Return Values

Returns a resource on success, or false on error.

Examples

ssh2_connect() example

Open a connection forcing 3des-cbc when sending packets, any strength aes cipher when receiving packets, no compression in either direction, and Group1 key exchange.

php
<?php
/* Notify the user if the server terminates the connection */
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('Connection failed');
?>

See Also

Source: reference/ssh2/functions/ssh2-connect.xml · from the official PHP manual (php/doc-en)