Php/docs/function.ssh2-connect

提供:Dev Guides
< Php
移動先:案内検索

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connectSSH サーバーに接続する


説明

ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] ) : resource

リモートの SSH サーバーとの接続を確立します。

一度接続すると、クライアントは ssh2_fingerprint() を使用してサーバーのホスト鍵を検証し、 パスワードもしくは公開鍵を使用して認証します。


パラメータ

host
port
methods

methods は以下に示された4つのパラメータを持つ連想配列です。

methods は以下のパラメータのいくつかあるいは全てを含む連想配列
インデックス 意味 サポートする値*
kex 通知する鍵交換メソッドのリスト。優先する順にカンマ区切りにする。 diffie-hellman-group1-sha1

diffie-hellman-group14-sha1 および diffie-hellman-group-exchange-sha1

hostkey 通知するホスト鍵メソッドのリスト。優先する順にカンマ区切りにする。 ssh-rsa および

ssh-dss

client_to_server クライアントからサーバーに送信されるメッセージのために優先する暗号化、

圧縮、メッセージ認証コード (MAC) メソッドを含む連想配列。

 
server_to_client サーバーからクライアントに送信されるメッセージのために優先する暗号化、

圧縮、メッセージ認証コード (MAC) メソッドを含む連想配列。

 

* - サポートする値は、 構成するライブラリがサポートしているメソッドに依存します。 追加情報については » libssh2 ドキュメントを参照ください。

client_to_server server_to_client は以下のパラメータのいくつかあるいは全てを含む連想配列
インデックス 意味 サポートする値*
crypt 通知する暗号化メソッドのリスト。

優先する順にカンマ区切りにする。

rijndael-cbc@lysator.liu.se

aes256-cbcaes192-cbcaes128-cbc3des-cbcblowfish-cbccast128-cbcarcfour および none**

comp 通知する圧縮メソッドのリスト。

優先する順にカンマ区切りにする。

zlib および

none

mac 通知する MAC メソッドのリスト。

優先する順にカンマ区切りにする。

hmac-sha1

hmac-sha1-96hmac-ripemd160hmac-ripemd160@openssh.com および none**

注意: 暗号化、MAC メソッドの "none"

セキュリティ上の問題で、none は ビルド時に適切な ./configure オプションを使用して明示的に有効にしない限り、構成している » libssh2 によって無効にされます。 詳細は構成するライブラリのドキュメントを参照ください。

callbacks

callbacks は以下のパラメータのいくつかあるいは全てを含む連想配列

コールバックパラメータ
インデックス 意味 プロトタイプ
ignore SSH2_MSG_IGNORE

パケットを受信したときにコールする関数名

void ignore_cb($message)
debug SSH2_MSG_DEBUG

パケットを受信したときにコールする関数名

void debug_cb($message, $language, $always_display)
macerror パケットを受信したがメッセージ認証コードに失敗した場合にコールされる関数名。

もしコールバックが true を返す場合、不整合は無視されます。 そうでない場合、接続は終了します。

bool macerror_cb($packet)
disconnect SSH2_MSG_DISCONNECT

パケットを受信したときにコールする関数名

void disconnect_cb($reason, $message, $language)


返り値

成功した場合にリソース、エラー時に false を返します。


例1 ssh2_connect() の例

パケット送信時に 3des-cbc 、 パケット受信時に任意の強度の aes cipher、 両方向で無圧縮、 Group1 での鍵交換という設定で強制的に接続をオープンします。


<?php/* もしサーバーが接続を終了した場合、ユーザーに通知する */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');?>

参考