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. 関連モジュール タイトル
テーマ 8.7.x Bartikのtwigについて
フォーム 8.7.x Webform WebformのCheckboxの要素にて表記の変更
コンテンツの作成 8.7.x CkEditor Creditorエディタ内に Colorboxポップアップ を簡単に挿入する方法
アップデート 8.7.2 menu drupal-core 8.7.2にupdateしたところ
Viewsプログラミング 8.6.x Views Drupal8 Viewsの動的キャッシュをクリアする方法
フォーム 8.6.x JavaScript 特定のformに動的にJavaScriptをロードする方法
Commerce2 8.6.x Commerce Order Commerceで注文情報から全Itemを得る方法
Commerce2 8.6.x Commerce Shipment Commerceで配送情報を得る方法
Commerce 8.6.x Commerce Payment Order Commerceで歴代購入数/金額を集計する方法
コンテンツの管理 8.6.x Commerce Commerce orderからすべての商品名を取得する方法
サイトの環境設定 8.6.x Simhony Yaml yamlファイルを読み込む方法
フォーム 8.6.x JavaScript 特定のformにJavaScriptを紐付ける方法
Commerce 8.6.x Commerce Payment Gateway オリジナルCommerce決済モジュール(Offsite)で決済サーバーへのPOST時のエンコードを変更する方法
コンテンツの管理 8.5.x Field File コンテンツのフィールドの表示について
Libraries 8.5.x Libraries Commerceで外部JavaScriptをテスト/本番で読み分ける方法
JavaScript 8.5.x PHP Commerce決済モジュール設定をJavaScriptにデータに渡す方法
サイトの構築 8.3x Webform Webformモジュール メールアドレスの入力ミス確認
Viewsプログラミング 8.4x Views drupal8におけるViewsプログラミング
サイト情報 8.4x JavaScript JavaScriptに変数を渡す方法
テーマ 8.4x hook_preprocess_html bodyタグにnode idやaliasのClassを追加する方法

ページ