SFTP(RSA)でファイル転送(送信)する方法

カテゴリ SFTP コアバージョン 8.4x 関連モジュール SFTP RSA

phpseclibを利用

use phpseclib\Net\SFTP;
use physiclib\Crypt\RSA;

接続仕様

$ssh_host = ホスト名 or IPアドレス
$ssh_port = ポート番号
$ssh_user_id = ユーザーID
$ssh_password = パスワード認証の場合 パスワード
$rsa_file_path = 鍵認証の場合 プライベート鍵ファイルへのパス
$csv_share_directory = 送信先ディレクトリ

実行

$sftp = new SFTP($ssh_host, $ssh_port);
// password or rsa.
$key = $ssh_password;
if (!$key) {
  $key = new RSA();
  $rsa = file_get_contents($rsa_file_path);
  if (!$rsa) {
    $this->putError(t('rsaファイルが読み込めませんでした。@file', ['@file' => $rsa_file_path]));
  }
  if (empty($this->getError())) {
    $key->loadKey($rsa);
  }
}
// login.
if (empty($this->getError())) {
  if ($sftp->login($ssh_user_id, $key)) {
    // put file.
    $sftp->put("$csv_share_directory/$file", $data);
  }
  else {
    $this->putError(t('SSHログインに失敗しました。'));
  }
}

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール昇順で並び替える タイトル
Google 7.38 robots.txt Google Search Console Teamから「CSS および JS ファイルに Googlebot がアクセスできません」
ユーザ 7.22 Realname ユーザーIDではなくニックネーム等を表示したい
ユーザ 7.44 Quickbar 会員の種別(役割)別にメニューを設けたい
SSH 7.50 ProxyCommand SSH IP制限を1コマンドで通過する
Proxy 7.59 Proxy Apache settings.php リバースプロキシ(Apache)+バックグランドWeb(Drupal 7 )でログインセッションを維持する方法
サイトの構築 7.19 Plesk Pleskでdrupal7(プライベートファイルシステム)を使う場合の注意点
コンテンツの作成 8.4x PhpSpreadsheet Excelを読み書きする方法
JavaScript 8.5.x PHP Commerce決済モジュール設定をJavaScriptにデータに渡す方法
ユーザの管理 7.27 PHP 新規ユーザーの追加ができない
PHP 8.3x PHP drupa8でhook_init()する方法
アップデート 8.9.x PHP CentosでPHPのバージョンアップ(例:5.3->5.6)を行う方法
JavaScript 7.34 PHP PHPからJavaScriptに変数値を渡したい
チューニング 7.26 PHP DrupalはNginxで動く?
PHP 7.22 PHP ノードに付いたコメントを好きな場所に表示する
Database 7.34 PHP データベースクエリ(SELECT)時のSQL関数
PHP-FPM 8.9.x PHP PHP-FPM 環境で .htaccess に php_value を 書いてもダメ
ユーザ 7.23 PHP user_load_multiple()の復帰値
コンテンツの作成 7.26 PHP ノード内の一部(フィールド)を変更する
PHP 8.9.x PHP YamlをPHP配列にする方法
コンテンツの管理 7.16 PHP 好きなところにノードを埋め込みたい

ページ