ssh2_connect
(PECL ssh2:0.10-0.9) ssh2_connect — Connect to an SSH server
Description
resource ssh2_connect
( string $host
[, int $port
[, array $methods
[, array $callbacks
]]] )
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, and
diffie-hellman-group-exchange-sha1
|
hostkey |
List of hostkey methods to advertise, come separated
in order of preference.
|
ssh-rsa and
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 |
Associative array containing crypt, compression, and
message authentication code (MAC) method preferences
for messages sent from client to server.
|
|
* - Supported Values are dependent on methods supported by underlying library.
See » libssh2 documentation for additional
information.
client_to_server
and
server_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, and
none**
|
comp |
List of compression methods to advertise, comma separated
in order of preference. |
zlib and
none
|
mac |
List of MAC methods to advertise, come separated
in order of preference. |
hmac-sha1,
hmac-sha1-96,
hmac-ripemd160,
[email protected], and
none**
|
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 received
|
void ignore_cb($message) |
debug |
Name of function to call when an
SSH2_MSG_DEBUG packet is received
|
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 |
Name of function to call when an
SSH2_MSG_DISCONNECT packet is received
|
void 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'); ?>
|