Php/docs/function.ssh2-connect
ssh2_connect
(PECL ssh2 >= 0.9.0)
ssh2_connect — Connect to an SSH server
说明
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.
参数
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.
rijndael-cbc@lysator.liu.se
,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
,hmac-ripemd160@openssh.com
, 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)
返回值
Returns a resource on success, or false
on error.
范例
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');?>
参见
- 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