ssh2_connect
(PECL ssh2 >= 0.9.0)
ssh2_connect — Connect to an SSH server
Description
$host
[, int $port
= 22
[, array $methods
[, array $callbacks
]]] ) : resourceEstablish 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, and diffie-hellman-group-exchange-sha1 hostkey List of hostkey methods to advertise, comma 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 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. rijndael-cbc@lysator.liu.se, 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, comma separated in order of preference. hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, 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 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)
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
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 30/01/2003, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/php-rf-ssh2-connect.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.