ssh2://

ssh2://Secure Shell 2

説明

ssh2.shell://ssh2.exec://ssh2.tunnel://ssh2.sftp://ssh2.scp:// (PECL)

注意: このラッパーはデフォルトでは有効になっていません
ssh2.*:// ラッパーを使用するには、 » PECL から » SSH2 拡張モジュールを インストールする必要があります。

ssh2 ラッパーでは、URL のホスト部分に接続リソースを渡すことで既にオープン している接続を再利用することが可能です。

利用法

  • ssh2.shell://user:pass@example.com:22/xterm
  • ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd
  • ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14
  • ssh2.sftp://user:pass@example.com:22/path/to/filename

オプション

ラッパーの概要
属性ssh2.shellssh2.execssh2.tunnelssh2.sftpssh2.scp
allow_url_fopen で制約されるYesYesYesYesYes
読み込み許可YesYesYesYesYes
書き込み許可YesYesYesYesNo
追加許可NoNoNoYes(サーバーがサポートしている場合)No
同時読み書き許可YesYesYesYesNo
stat() のサポートNoNoNoYesNo
unlink() のサポートNoNoNoYesNo
rename() のサポートNoNoNoYesNo
mkdir() のサポートNoNoNoYesNo
rmdir() のサポートNoNoNoYesNo

コンテキストオプション
名前使用法デフォルト
session再利用する接続済みの ssh2 リソース 
sftp再利用する割り当て済みの sftp リソース 
methodsKey exchange, hostkey, cipher, compression, および MAC methods 
callbacks  
username接続するユーザー名 
passwordパスワード認証に使用するパスワード 
pubkey_file認証に使用する公開鍵ファイル 
privkey_file認証に使用する秘密鍵ファイル 
env設定する環境変数の連想配列 
termpty を割り当てる際の端末エミュレート方式 
term_widthpty を割り当てる際の端末の幅 
term_heightpty を割り当てる際の端末の高さ 
term_unitsterm_width および term_height の単位SSH2_TERM_UNIT_CHARS

例1 アクティブな接続からストリームをオープンする

<?php
$session
= ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>

例2 $session を有効にしておかないといけない!

ssh2.*://$session ラッパーを使うには、 リソース変数 $session をキープしておかないといけません。 次のコードは、期待通りには動きません。

<?php
$session
= ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret');
$connection_string = "ssh2.sftp://$session/";
unset(
$session);
$stream = fopen($connection_string . "path/to/file", 'r');
?>

この例では、unset() のところでセッションを閉じてしまいます。 なぜなら、$connection_string が持つのが $session への参照ではなく、単にそれを文字列にキャストしたものだからです。 これは、unset() が暗黙のうちに呼ばれた場合にも起こりえます (関数などの) スコープを抜けるときに発生する可能性があります。

To Top