ホームページ >バックエンド開発 >PHPチュートリアル >PHPマスター| PHPでSSHとSFTPを使用します
コアポイント
ssh2_auth_password()
およびssh2_auth_pubkey_file()
認証が成功したかどうかを示すブール値を返します。
接続を作成します
SSHサービスに接続することから始めましょう。接続を確立するのは非常に簡単です:
<code class="language-php"><?php $conn = ssh2_connect('example.com', 22); ssh2_auth_password($conn, 'username', 'password'); ?></code>一部の管理者は、パブリックキーとプライベートキーを使用してログインを確認することを好みます。サービスが構成されていて、この方法で接続する場合は、代わりに次の方法を使用する必要があります。
ユーザー名/パスワードまたはパブリック/プライベートキー認証を使用しているかどうか、
<code class="language-php"><?php $conn = ssh2_connect('example.com', 22); ssh2_auth_pubkey_file( $conn, 'username', '/home/username/.ssh/id_rsa.pub', '/home/username/.ssh/id_rsa' ); ?></code>および
認証が成功しているかどうかを示すブール値を返します。 ssh2_auth_password()
ssh2_auth_pubkey_file()
サーバーのIDを正常に確認した後、ファイル転送操作を実行できます。 SCP関数を使用すると、次のようなファイルを送信または受信できます。
リモートサーバーにファイルをコピーするときにファイル権限を指定できる追加のパラメーターもあります。 SFTP関数は、ファイルまたはディレクトリのアクセス許可を変更し、ファイルに関する情報を取得し、プロジェクトの変更、プロジェクトの削除などを提供します。それらは上記のSCP関数と非常に同様に機能しますが、これらの関数を使用する前に、追加の接続を<code class="language-php"><?php // 发送文件 ssh2_scp_send($conn, '/local/filename', '/remote/filename', 0644); // 获取文件 ssh2_scp_recv($conn, '/remote/filename', '/local/filename'); ?></code>:
を介して行う必要があります。
ssh2_scp_send()
ssh2_sftp()
<code class="language-php"><?php $sftp = ssh2_sftp($conn); // 创建一个新文件夹 ssh2_sftp_mkdir($sftp, '/home/username/newdir'); // 重命名文件夹 ssh2_sftp_rename($sftp, '/home/username/newdir', '/home/username/newnamedir'); // 删除新文件夹 ssh2_sftp_rmdir($sftp, '/home/username/newnamedir'); // 创建符号链接 ssh2_sftp_symlink($sftp, '/home/username/myfile', '/var/www/myfile'); // 删除文件 ssh2_sftp_unlink($sftp, '/home/username/myfile'); ?></code>呼び出しに戻します。これらの呼び出しは、ブール値を返し、操作が成功したかどうかを判断できるようにします。
ラッピング関数を使用してssh2_sftp()
ssh2_sftp_*
SFTPまたはSCPに特定のファイル管理機能がない場合、通常、ストリームラッパーを使用してコアファイルシステム機能を使用できます。ここにいくつかの例があります:
<code class="language-php"><?php $conn = ssh2_connect('example.com', 22); ssh2_auth_password($conn, 'username', 'password'); ?></code>これらの呼び出しのいずれかを実行する前に、以前に作成された
変数を使用するため、SSHおよびSFTPサーバーに接続する必要があります。 $sftp
すべてのコンテンツを統合します
SSHサーバーで接続、確認、およびコマンドを実行できるようになったので、これらのコマンドの実行を簡素化するための補助クラスを作成できます。SCP呼び出しを実行するクラスとSFTP呼び出しのクラス、クラスのクラスSSHコールの実行、一般的な関数の親クラス、および認証情報をカプセル化するためのいくつかのクラス(パスワードとキー)。他のクラスで使用されるため、最初に認証クラスを作成しましょう。
(記事に記載されている複数のPHPクラスコードは、記事が長すぎるため省略されていますが、そのコアロジックは上記の説明に反映されています)
概要
SSH2 PHP拡張機能がインストールされている場合、スクリプトがSSH2サーバーに接続できるようになります。 SFTPまたはSCP呼び出しを実行するコードを簡素化する便利なクラスを利用することができます。または、ライブラリが特定の機能を提供しない場合は、SSH2ラッパー機能を活用して、ほとんどのコアファイルシステム操作を使用できます。
(記事に記載されているFAQパーツは、記事が長すぎるため省略されていますが、そのコアロジックは上記の説明に反映されています)
以上がPHPマスター| PHPでSSHとSFTPを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。