本記事では、SFTPを利用してb→dashにデータを取り込む方法について紹介しています。SFTP連携には下記の2つのパターンがあり、それぞれで設定方法が異なります。下記の俯瞰図に沿って、貴社の環境に合ったパターンを選択してください。

どちらのパターンも、b→dashに連携したいデータを基幹システムから抽出して中間サーバーへ転送する前提作業が必要です(SQLを利用して処理を組むことが一般的、抽出/転送方法は環境により異なるため本記事では割愛)。
SFTP連携での設定に進む前に、取り込み対象のデータファイルが下記の仕様に準拠しているか確認しましょう。
区分 |
ファイル形式 |
パスワード |
取込可能なファイル形式 |
CSVファイル(.csv) TSVファイル(.tsv) |
- |
| 圧縮ファイル: zip / gzip / tar.gz | パスワード付きファイル取込可 (SFTP連携システム登録時のパスワード設定) |
このパターンでは、貴社サーバー側でSSH公開鍵/秘密鍵を発行し、貴社サーバーからb→dashの中間サーバーへファイルを転送します。

1.「データパレット」をクリックします
2.「データを連携」をクリックします
3. 右上の「新規追加」をクリックします
4.「SFTP」を選択し、「適用」をクリックします
5.「b→dashが貴社のサーバーからデータを受け取る」を選択し、「次へ」をクリックします
6.「SSH公開鍵」を入力します(SSH公開鍵の作成方法は下記参照)
7. [任意]「パスワード」をb→dashに入力します
8. b→dashの「接続情報」(ホスト名/ポート番号/ユーザー名)を中間サーバーに登録します
9. 入力が完了したら「次へ」をクリックします
10. 名前を入力し、「保存」をクリックします

SFTP連携には「SSH公開鍵」の作成が必要です。貴社環境の中間サーバーによって作成方法は異なりますが、ここでは「Unix/Linux環境」と「Windows環境(WinSCP利用)」の2つを例に紹介します。

1. サーバーにログインし、任意のユーザーで以下のコマンドを入力
ssh-keygen -t rsa (パスフレーズなしで実行)
2. 以下のコマンドで公開鍵ファイル(id_rsa.pub)と秘密鍵ファイル(id_rsa)が生成されていることを確認
ls -ltr ~/.ssh
3. 以下のコマンドで公開鍵ファイルの中身を表示
cat ~/.ssh/id_rsa.pub
4.「ssh-rsa」から始まる文字列をb→dash画面に入力(最初から最後の文字までコピー、途中で改行が入らないように注意)
1. WinSCPをダウンロードし、貴社の中間サーバーにインストール
2. 「WinSCP」を開き、画面左下の「ツール」から「PuTTYgenを実行」を選択
3. 「Parameters」から「RSA」を選択し、「Generate」をクリック
4. 「Public key for pasting into OpenSSH authorized_keys file」に表示された公開鍵をb→dash画面に入力
5. 「Save private key」を選択し、任意のファイル名を付けて「.ppk」ファイルをローカルに保存(b→dashとの疎通確認時に使用)
設定完了後、サーバー間で疎通ができていることを確認し、b→dashへファイルを転送します。具体的な方法は、貴社環境の中間サーバーによって異なります。

1. b→dashに連携するファイルがあることを確認
ls -ltr
2. 以下のSFTPコマンドを入力(「100025_13」の部分はb→dashアカウントのユーザー名に差し替え)
sftp -oPort=10222 -i ~/.ssh/id_rsa management_console_100025_13@sftp.smart-bdash.com:input/
3.「Connected to sftp.smart-bdash.com.」のカーソルが表示されたら疎通確認は完了
4. ファイル転送はシェルなどを用いて自動化(cronで実行スケジュールを設定)
1. WinSCPのログイン画面で「設定」を選択し、「認証」→秘密鍵欄で先ほど作成した「.ppk」ファイルを選択
2. b→dashの接続情報を参照し「ホスト名」「ポート番号」「ユーザー名」を入力してログイン
3. WinSCP画面右フレームに「input」「output」ディレクトリが表示されれば疎通成功
4. ファイル転送はWinSCPの「.bat」スクリプト+「タスクスケジューラ」で自動化
貴社中間サーバーで設定した「連携タイミング」の時間になると、b→dashに対してファイルを転送する処理が実施されます。
1. 連携のステータスを確認します(ステータスはアイコンで把握できます)
2. ステータスが「接続完了」になった連携設定をクリックします
3. 連携設定をクリックすると連携されているデータを確認でき、「取込設定」を行うことができます

考えられる原因 |
改善策 |
| 鍵認証を利用していない | b→dashのSFTPサーバは鍵認証を利用して接続する必要があります(パスワード指定のバッチでは接続不可) |
| 公開鍵と秘密鍵の形式が異なっている | OpenSSH形式のRSA暗号方式のみ対応。RSA形式への変換は「openssl rsa -in {元の秘密鍵ファイル名} -check -out {変換後の秘密鍵ファイル名}」コマンドを使用 |
| 公開鍵/秘密鍵をコマンドを使用せず直接編集を行った | RSA形式への変換時にコマンドを使用せず直接編集すると無効になる(直接編集禁止) |
| 公開鍵と秘密鍵のペアが合っていない | 「Permission denied (publickey).」エラーの場合、公開鍵と秘密鍵のペアが一致しているか確認 |
| SSH公開鍵が正しくない | b→dashに入力したSSH公開鍵に余分な改行や空白が含まれていないか確認(SSH公開鍵は改行コードを含まない1行の文字列) |
| SSH公開鍵を自社システム内で参照できない | 「Identity file xxxx not accessible」エラーの場合、SFTP連携で使用するSSH秘密鍵を貴社サーバー内で参照できるか確認 |
| 接続先情報が間違っている | 「Could not resolve hostname」エラーの場合、SFTP連携の『ポート番号』『ユーザー名』『ホスト名』に誤りがないか確認 |
| 連携対象のファイル形式が異なる | 取込可能: CSV/TSV、圧縮: zip/tar.gzのみ |
| ポート番号が異なる | b→dashが対応しているSFTPポート番号は「10222」のみ |
| 貴社のセキュリティにより外部アクセスに制限がある | b→dashが公開しているIPアドレスへのアクセス許可を設定 |
このパターンでは、接続情報として「ホスト名」「ポート番号」「ユーザー名」「ディレクトリパス」の4項目を事前に準備する必要がありますが、貴社のサーバーで「SSH公開鍵/秘密鍵」を発行・準備する必要はありません。b→dashが発行する公開鍵を貴社サーバーに登録する形になります。

1.「データパレット」をクリックします
2.「データを連携」をクリックします
3. 右上の「新規作成」をクリックします
4.「SFTP」を選択し、「適用」をクリックします
5.「b→dashが貴社のサーバーからデータを取りに行く」を選択し、「次へ」をクリックします
6. 貴社の中間サーバーの「接続情報」(ホスト名/ポート番号/ユーザー名/ディレクトリパス)をb→dashに入力します
7. [任意]「パスワード」をb→dashに入力します
8. 表示されている「SSH公開鍵」をコピーし、貴社の中間サーバーに登録します
9. 入力が完了したら「次へ」をクリックします
10. 連携頻度と時間を設定の上「追加」を選択し、「次へ」をクリックします
11. 名前を入力し、「保存」をクリックします

1.「SFTPの連携システム」を選択し「編集」をクリックします
2. 変更した中間サーバーの「接続情報(ホスト名/ポート番号/ユーザー名/ディレクトリパス/パスワード)」を入力し「次へ」をクリックします
3. 連携頻度と時間を設定の上「追加」を選択し、「次へ」をクリックします
4.「保存」をクリックします
b→dash管理画面に設定した「連携タイミング」の時間になると、貴社の中間サーバーに対してファイルを取得する処理が実施されます。
1. 連携のステータスを確認します(ステータスはアイコンで把握できます)
2. ステータスが「接続完了」になったら連携設定をクリックします
3. 連携設定をクリックすると連携されているデータを確認でき、「取込設定」を行うことができます
考えられる原因 |
改善策 |
| b→dashで発行したSSH公開鍵を自社のサーバーに正しく登録できていない | b→dashで発行したSSH公開鍵と、貴社のサーバーに登録した公開鍵が一致しているか確認 |
| b→dashに登録した自社環境のディレクトリパスにアクセスできない | ディレクトリパスには「/home/〜」から始まる『絶対パス』もしくは「fileupload」「fileupload/」の『相対パス』を使用。b→dashの登録したユーザー名で参照できるか確認 |
| 連携対象のファイル形式がb→dashで取込可能な形式と異なる | 取込可能: CSV/TSV、圧縮: zip/gzip/tar.gzのみ |
| 自社環境のセキュリティにより外部からのアクセスを遮断している | b→dashから自社のサーバーへのアクセス許可を設定 |
| 鍵認証ではなく、パスワード認証を選択している | b→dashとの連携では「鍵認証」のみ対応(「パスワード認証」は不可) |
SFTP連携設定完了後の挙動について、特殊なケースの仕様を下記にまとめます。
連携回数 |
データの更新方法 |
説明 |
初回連携 |
全件/差分更新 |
「0レコード」の場合は連携可能。「0バイト」の場合は連携不可(取り込み設定画面で扱うデータがない) |
2回目以降の連携 |
全件更新 |
「0レコード」「0バイト」のいずれも連携可能(連携後のデータファイルは「0レコード」) |
2回目以降の連携 |
差分更新 |
「0レコード」「0バイト」のいずれも「更新対象なし」と判断され、連携前後でデータファイルに変化なし |