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.3x Core Twig開発用の設定
Token 8.4x Token カスタムモジュールからtokenを提供する方法(drupal8版)
サイト情報 8.4x JavaScript JavaScriptに変数を渡す方法
コンテンツの作成 8.4x Download とにかく何でもコンテンツをダウンロードさせる方法
コンテンツの作成 8.4x node 新規ノードを作成する
Views 8.4x hook_views_query_alter 現在のViewsクエリを保存・再現する方法
コンテンツの管理 8.4x Action カスタムアクションを作成する方法
コンテンツの作成 8.4x node node保存前に色々やる方法
Viewsプログラミング 8.4x Views drupal8におけるViewsプログラミング
video 8.4x video map 動画上にクリッカブルマップを作成する方法
コンテンツの作成 8.4x json jQueryにjsonで渡す方法
コンテンツの作成 8.4x archiver zipファイル圧縮・解凍する方法
Views 8.4x hook_views_query_alter Viewsクエリの条件式にサブクエリを追加する方法
Initial 8.4x Subscriber hook_init() 〜 drupal_goto() を drupal8でやる方法
コンテンツの管理 8.4x Entity EntityをPropertyで探す(クエリする)方法
コンテンツの作成 8.4x コンテンツ作成時のフォームレイアウトの変更
テーマ 8.4x hook_preprocess_html bodyタグにnode idやaliasのClassを追加する方法
コンテンツの作成 8.4x PhpSpreadsheet Excelを読み書きする方法
Views 8.4x hook_views_query_alter Viewsクエリに多くの条件を追加する方法
Views Exposed Filter 8.4x hook_views_pre_view Views Exposed Formの複数単語入力(textfield)をフォーム上だけ複数行入力(textarea)にする方法

ページ