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.昇順で並び替える 関連モジュール タイトル
GoogleMaps 7.28 Javascript IE9でGoogle Map APIを利用した住所情報所得がうまくゆかない
言語 7.28 vim vimで全角が化けてしまう
アップデート 7.28 DisableMessages モジュールのアップデートガイダンスを非表示にしたい
サイトの構築 7.27 Context block ページ別、カテゴリ別等でブロックの表示有無を簡単にするには
ユーザの管理 7.27 PHP 新規ユーザーの追加ができない
表示 7.26 Views ページ内に2つ目Viewsブロックを設置するときPagerが連動してしまう
コンテンツの作成 7.26 PHP ノード内の一部(フィールド)を変更する
サイトの構築 7.26 Field Views フォーム選択肢(プルダウンやチェックボックス、ラジオボタン)のカスタマイズ方法
排他 7.26 lock Viewsモジュールの設定ページのような排他機能
コンテンツの作成 7.26 CKEditor Views Viewsでティザーを一覧するとページのレイアウトが崩れることがある
コンテンツの作成 7.26 Form Ajax 入力フォームで#ajax使用時、#default_valueを書き換えても反映しない
チューニング 7.26 PHP DrupalはNginxで動く?
サイトの構築 7.23 Conditional fields ノード編集フォームを動的にしたい
ブロック 7.23 伸縮するfieldsetブロックを追加したい
サイトの環境設定 7.23 Image Style 画像スタイルの使い方(Crop)
ユーザ 7.23 PHP user_load_multiple()の復帰値
ユーザ 7.23 User 長い投稿者名の表示が切れる
コンテンツの作成 7.23 maxlength テキストフィールドの最大長のチェック&カウントダウン
サイトの環境設定 7.23 Pathauto 自動生成されるURLエイリアスがおかしい
テーマ 7.23 hook ページや状況によってテーマを切り替える

ページ