(PECL ssh2 >= 0.9.0)
ssh2_connect — Connect to an SSH server
$host
   [, int $port = 22
   [, array $methods
   [, array $callbacks
  ]]] )Устанавливает соединение с сервером по SSH.
После соединения, пользователь должен проверить ключ сервера, используя функцию ssh2_fingerprint(), и после этого авторизоваться, используя пароль или публичный ключ.
host
port
methods
       Параметр methods может быть ассоциативным массивом, 
       содержащим до четырех записей, перечисленных ниже.
      
| Индекс | Что обозначает | Допустимые значения* | 
|---|---|---|
| kex | Список методов обмена ключами, разделенных запятой, в порядке предпочтения. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, и diffie-hellman-group-exchange-sha1 | 
| hostkey | Список методов ключей хоста, разделенных запятой, в порядке предпочтения. | ssh-rsa и ssh-dss | 
| client_to_server | Ассоциативный массив, содержащий настройки шифрования, сжатия и метода имитовставки ("message authentication code" или MAC) для посылки сообщений от клиента к серверу. | |
| server_to_client | Ассоциативный массив, содержащий настройки шифрования, сжатия и метода имитовставки ("message authentication code" или MAC) для посылки сообщений от сервера к клиенту. | 
* - Поддерживаемые значения зависят от методов, поддерживаемых базовой библиотекой. Более подробно читайте документацию по » libssh2.
| Индекс | Что обозначает | Допустимые значения* | 
|---|---|---|
| crypt | Список методов шифромания, разделенных запятой, в порядке предпочтения. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, и none** | 
| comp | Список методов сжатия, разделенных запятой, в порядке предпочтения. | zlib и none | 
| mac | Список методов MAC, разделенных запятой, в порядке предпочтения. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, и none** | 
Замечание: Метод "none" для шифромания и MAC
В целях безопасности, none отключен в базовой библиотеке » libssh2, если вы не разрешили его самостоятельно на этепе сборки, выставив соответствующие ключи ./configure. Смотрите документацию по базовой библиотеки для более подробной информации.
callbacks
       callbacks может быть ассоциативным массивом,
       содержащим любой или же все нижеперечисленные параметры
       
| Индекс | Что обозначает | Прототип | 
|---|---|---|
| ignore | Имя функции, вызываемой после получения пакета SSH2_MSG_IGNORE | void ignore_cb($message) | 
| debug | Имя функции, вызываемой после получения пакета SSH2_MSG_DEBUG | void debug_cb($message, $language, $always_display) | 
| macerror | Имя функции, вызываемой если пакет получен, но
            MAC не удался. Если callback-функция вернет TRUE, 
            несовпадение будет проигнорировано, в обратном случае
            соединение будет оборвано. | bool macerror_cb($packet) | 
| disconnect | Имя функции, вызываемой после получения пакета SSH2_MSG_DISCONNECT | void disconnect_cb($reason, $message, $language) | 
   Возвращает ресурс в случае успеха и FALSE если нет.
  
Пример #1 Пример ssh2_connect()
Откроем соединение принудительно успользуя такие настройки: 3des-cbc при посылке пакетов, шифр aes любой силы при получении пакетов, без сжатия в обоих направлениях и обмен ключами Group1.
<?php
/* JОповещаем пользователя, если сервер прервал соединение */
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');
?>