PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのssh2://ストリームラッパーとは?使い方とコンテキストオプションを解説

はじめに

libssh2ライブラリは、暗号化された安全な通信経路を通じて、リモートマシン上のリソースへのアクセスを提供します。アクセスできる機能には、シェル操作、リモートコマンド実行(exec)、トンネリング、ファイル転送(SFTP)、SCPなどがあります。

PHPでは、これらのリソースに対応するストリームラッパーが用意されており、それぞれssh2.shell://、ssh2.exec://、ssh2.tunnel://、ssh2.sftp://、ssh2.scp://として利用できます。

なお、これらのラッパーはデフォルトでは有効になっていません。利用するには、PECLから提供されているSSH2拡張モジュールを別途インストールする必要があります。インストール後はphp.iniで拡張モジュールを有効にすることで、fopen()やfile_get_contents()などの標準的なファイルシステム関数からSSH接続を透過的に扱えるようになります。

基本的な使い方

各ラッパーは以下のような形式で記述します。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.shell://:リモートマシン上で対話型シェル(xterm)を開く
  • ssh2.exec://:指定したコマンド(/usr/local/bin/somecmd)をリモートで実行する
  • ssh2.tunnel://:リモートマシン経由で内部ネットワーク(192.168.0.1:14)へのトンネルを確立する
  • ssh2.sftp://:SFTPプロトコルを使ってリモートファイルにアクセスする

また、scpによるファイル転送にはssh2.scp://ラッパーを使用します。

ssh2.*// のコンテキストオプション

stream_context_create()で作成したコンテキストを使うことで、SSH接続の詳細な挙動を制御できます。主なオプションは以下のとおりです。

session再利用する事前接続済みのssh2リソースを指定します
sftp再利用する事前割り当て済みのsftpリソースを指定します
methods鍵交換、ホスト鍵、暗号方式、圧縮、MAC方式などの設定、およびコールバックの指定を行います
username接続時に使用するユーザー名を指定します
passwordパスワード認証で使用するパスワードを指定します
pubkey_file認証に使用する公開鍵ファイルの名前を指定します
privkey_file認証に使用する秘密鍵ファイルの名前を指定します
env設定する環境変数を連想配列で指定します
termptyを割り当てる際に要求する端末エミュレーションの種類を指定します
term_widthptyを割り当てる際に要求する端末の幅を指定します
term_heightptyを割り当てる際に要求する端末の高さを指定します
term_unitsterm_widthおよびterm_heightで使用する単位を指定します

補足:公開鍵認証の活用

パスワード認証の代わりに、pubkey_fileとprivkey_fileオプションを組み合わせて公開鍵認証を利用すると、より安全な接続が可能になります。URL内にパスワードを含める必要がなくなるため、スクリプトの可読性とセキュリティの両面でメリットがあります。

  1. 【初心者向け】PHPタグとは?基本構文からショートタグまで徹底解説

    PHPタグとは?定義と基本的な使い方PHPスクリプトは、拡張子が「.php」のテキストファイルとして作成され、Webサーバー上に保存されます。サーバー上のPHPパーサーは、<?php(開始タグ)と?>(終了タグ)という特殊な文字列を探し出します。この2つのタグは「PHPタグ」と呼ばれ、その間に記述されたステートメントのみがパーサーによって解釈・実行されます。PHPタグで囲まれたコードは、HTMLドキュメントの中に自由に埋め込むことができます。埋め込まれたPHPコードはサーバー側で実行され、その処理結果だけが出力されるため、残りのHTML部分はクライアントのブラウザーにあるHTMLパ

  2. PHPのpi()関数とは?使い方と定義済み定数との対応を実例付きで解説

    pi()関数の定義と使い方PHPのpi()関数は、数学定数π(円周率)の値を返す関数です。戻り値はfloat型の「3.14159265359」であり、PHPにあらかじめ定義されている定数M_PIとまったく同じ値になります。構文pi ( void ) : floatパラメータこの関数は引数を受け取りません。引数なしでそのまま呼び出すことができます。戻り値pi()関数は数学定数πの値を返し、定義済みの数学定数M_PIと等価です。数式の中では、M_PIの代わりにpi()関数を使うこともできます。対応するPHPバージョンこの関数はPHP 4.x、PHP 5.x、PHP 7.xのすべてのバージョンで利用