ssh2_connect
(PECL ssh2 >= 0.9.0)
ssh2_connect — Connect to an SSH server
Description
ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] ) : resource
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.methods
may be an associative array with any or all of the following parameters.Index Meaning Supported Values* kex List of key exchange methods to advertise, comma separated in order of preference. diffie-hellman-group1-sha1
,diffie-hellman-group14-sha1
, anddiffie-hellman-group-exchange-sha1
hostkey List of hostkey methods to advertise, comma separated in order of preference. ssh-rsa
andssh-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 Associative 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.
client_to_server
andserver_to_client
may be an associative array with any or all of the following parameters.Index Meaning Supported Values* crypt List of crypto methods to advertise, comma separated in order of preference. [email protected]
,aes256-cbc
,aes192-cbc
,aes128-cbc
,3des-cbc
,blowfish-cbc
,cast128-cbc
,arcfour
, andnone**
comp List of compression methods to advertise, comma separated in order of preference. zlib
andnone
mac List of MAC methods to advertise, comma separated in order of preference. hmac-sha1
,hmac-sha1-96
,hmac-ripemd160
,[email protected]
, andnone**
Note: Crypt and MAC method "
none
"
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.Callbacks parameters Index Meaning Prototype ignore Name of function to call when an SSH2_MSG_IGNORE
packet is receivedvoid ignore_cb($message) debug Name of function to call when an SSH2_MSG_DEBUG
packet is receivedvoid 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 Name 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
Example #1 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 /* 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
- ssh2_fingerprint() - Retrieve fingerprint of remote server
- ssh2_auth_none() - Authenticate as "none"
- ssh2_auth_password() - Authenticate over SSH using a plain password
- ssh2_auth_pubkey_file() - Authenticate using a public key
- ssh2_disconnect() - Close a connection to a remote SSH server
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/function.ssh2-connect.php