$Date: 2025/11/12 15:57:07 $
SFTP(SSH File Transfer Protocol)は、SSHによって暗号化された通信経路を利用して安全にファイルを転送するプログラムです。 ルーターのファイル転送プログラムとしてTFTPが実装されていますが、TFTPでは認証方式や暗号化方式が無いため、セキュリティ上のリスクがあります。 一方、SFTPでは認証とファイル転送の両方が暗号化されるため、遠隔から安全にルーターへのファイルの書き込みやルーターからのファイルの読み出しを行うことができます。 SFTPを用いることで以下の操作を行うことができます。
SFTPはSSHのサブシステムとして動作し、SSHの認証方式、暗号アルゴリズム、送信データ圧縮を使用します。 SSHの認証方式、暗号アルゴリズム、送信データ圧縮については、SSHサーバー機能を参照してください。
ヤマハルーターでは以下の機種およびファームウェアで、SFTPサーバー機能をサポートしています。
| 機種 | ファームウェア | SFTPサーバー機能(パスワード認証) | SFTPサーバー機能(公開鍵認証) |
|---|---|---|---|
| YSL-V810 | すべてのリビジョン | ○ | × |
| vRXシリーズ | ○ | ○ | |
| RTX840 | ○ | ○ | |
| RTX3510 | ○ | ○ | |
| RTX1300 | ○ | ○ | |
| RTX1220 | ○ | ○ | |
| RTX830 | Rev.15.02.01以降 | ○ | × |
| Rev.15.02.14以降 | ○ | ○ | |
| NVR510 | Rev.15.01.02以降 | ○ | × |
| Rev.15.01.16以降 | ○ | ○ | |
| NVR700W | Rev.15.00.02以降 | ○ | × |
| Rev.15.00.17以降 | ○ | ○ | |
| RTX1210 | Rev.14.01.05以降 | ○ | × |
| Rev.14.01.35以降 | ○ | ○ | |
| RTX5000 | Rev.14.00.29以前 | ○ | × |
| Rev.14.00.32以降 | ○ | ○ | |
| RTX3500 | Rev.14.00.29以前 | ○ | × |
| Rev.14.00.32以降 | ○ | ○ | |
| FWX120 | すべてのリビジョン | ○ | × |
| RTX810 | ○ | × | |
| NVR500 | Rev.11.00.13以降 | ○ | × |
| RTX1200 | Rev.10.01.22以降 | ○ | × |
| SRT100 | Rev.10.00.60以降 | ○ | × |
SFTPによるヤマハルーターへのアクセスには、以下の制限があります。
user attribute コマンドを用いることで、login user コマンドで設定した各ユーザーごとにSFTP接続の許可および禁止やSFTP接続できるパスワードを制限することができます。 また、disconnect user コマンドを用いることでSFTPサーバーに接続中のユーザーを強制的に切断させることができます。 以下に user attribute コマンドのSFTPサーバーに関する仕様拡張について説明します。 user attribute コマンドの詳細については、user attributeコマンドを参照してください。 SFTP接続中のユーザーの強制切断については、disconnect userコマンドを参照してください。
入力形式:
user attribute [user] attribute=value [attribute=value...]
no user attribute [user]
| attribute | value | 説明 |
|---|---|---|
| administrator (RTX840、RTX3510、RTX1300) |
2 |
administratorコマンドのパスワード入力無しで管理ユーザーに昇格することができる。またGUIの管理者ページへ接続することができる。 SFTPサーバーにおける本属性の役割は以下の通りです。 ●パスワード認証を使用する場合 ・login userコマンドで設定したパスワードでSFTP接続した場合 一般ユーザーの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。 使用できるSFTPの対話コマンドは、別表を参照してください。 ・管理者パスワードでSFTP接続した場合 管理者の権限でログインします。SFTPの対話コマンド全てを実行することが可能です。 使用できるSFTPの対話コマンドは、別表を参照してください。 ●公開鍵認証を使用する場合 ・管理者の権限でログインします。SFTPの対話コマンド全てを実行することが可能です。使用できるSFTPの対話コマンドは、別表を参照してください。 |
| 1 |
administratorコマンドにより管理ユーザーに昇格することができる。またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は、上記 administrator = 2 と同じ。 |
|
| off |
administratorコマンドにより管理ユーザーに昇格することができない。またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は以下の通りです。 ●パスワード認証を使用する場合 ・login userコマンドで設定したパスワードでSFTP接続した場合 一般ユーザーの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。 使用できるSFTPの対話コマンドは、別表を参照してください。 ・管理者パスワードでSFTP接続した場合 ログインすることができません。 ●公開鍵認証を使用する場合 ・一般ユーザーの権限でログインします。ファイルリストの閲覧が可能です。ファイルの読み出しや書き込み、リビジョンアップはできません。 使用できるSFTPの対話コマンドは、別表を参照してください。 |
|
| administrator (上記以外) |
on |
administratorコマンドにより管理ユーザーに昇格することができる。またGUIの管理者ページへ接続することができる。 SFTPサーバーにおける本属性の役割は、上記 administrator = 2 と同じ。 |
| off |
administratorコマンドにより管理ユーザーに昇格することができない。またGUIの管理者ページへ接続することができない。 SFTPサーバーにおける本属性の役割は、上記 administrator = off と同じ。 |
|
| connection | off | すべての接続を禁止する。 |
| all | すべての接続を許可する。 | |
| serial | シリアルコンソールからの接続を許可する。 | |
| telnet | TELNETによる接続を許可する。 | |
| ssh | SSHによる接続を許可する。 | |
| sftp | SFTPによる接続を許可する。 | |
| remote | リモートセットアップによる接続を許可する。 | |
| http | GUI設定画面への接続を許可する。 | |
| host | IPアドレス | 指定したホストからの接続を許可します。 |
| any | すべてのホストからの接続を許可します。 | |
| multi-session | on | 同一ユーザー名によるTELNETまたは、SSHでの複数接続を許可する。 ※SFTPは同時に複数のユーザーがログインすることはできません。 |
| off | 同一ユーザー名によるTELNETまたは、SSHでの複数接続を禁止する。 | |
| login-timer | 120..21474836, clear | ログインタイマーを設定する。login timerコマンドで設定されたタイマー値よりもこのコマンドで設定したタイマー値が優先されます。SFTPでは、SSH同様に login-timer = clear と設定されていてもタイマー値は300秒として扱います。 |
[初期値]
SFTPサーバーを利用するために、あらかじめ以下の設定を行う必要があります。
| login user ユーザー名 パスワード | ... (1) |
| user attribute ユーザー名 | ... (2) |
| sshd host IPアドレス | ... (3) |
| sshd host key generate | ... (4) |
| sshd service on | ... (5) |
| sftpd host IPアドレス | ... (6) |
| (1) | ログインユーザーの登録
ログインユーザー名とパスワードを設定します。 |
| (2) | ユーザーの属性を設定
ログインユーザーにSFTPによる接続を許可します。
必要に応じて、管理ユーザーに昇格する権限の設定を変更します。 |
| (3) | SSHで接続を許可するホストを設定
SSHで接続するホストのIPアドレスを設定します。 |
| (4) | SSHサーバーのホスト鍵の生成
DSAまたはRSAの公開鍵および、秘密鍵のペアを生成します。 |
| (5) | SSHサーバー機能を有効にする
SFTPサーバー機能は、SSHの認証および暗号化を使用しますので、SSHサーバー機能を有効にする必要があります。 |
| (6) | SFTPで接続を許可するホストを設定
SFTPで接続を許可するホストのIPアドレスを設定します。 |
※公開鍵認証を使用するためには、上記の設定に追加してauthorized_keysファイルにユーザーの公開鍵を登録する設定が必要です。
詳細は、こちらをご確認ください。
SFTPサーバーでは以下のようなディレクトリ構造が構築されます。
SFTPサーバーのルートディレクトリ | +--system/ ルーターの設定ファイルとファームウェアファイルとtechinfoの格納ディレクトリ | +--sd1/ microSDカードのルートディレクトリ(microSDカード挿入時のみ表示) | +--usb1/ USBメモリのルートディレクトリ(USBメモリ挿入時のみ表示) | +--RTFS領域のルートディレクトリにあるファイルやディレクトリ
| 機種 | 扱えないファイル名またはディレクトリ名(※1) |
|---|---|
| vRXシリーズ(※2) | system, mount |
| SRT100 | system, usb1 |
| RTX840, RTX3510, RTX1300, RTX1220, RTX1210, RTX1200, RTX830, RTX810, FWX120, NVR700W, NVR510 |
system, usb1, sd1 |
| NVR500 | system, usb1, usb2, sd1 |
※1 : これらのファイル名やディレクトリ名はRTFSのルートディレクトリ以外では使用することができます。 ※2 : vRXシリーズのファイルシステムについてはこちらを参照してください。
| 設定ファイル | 読み出し | config(※1)、configN (N : 0〜4.2) |
|---|---|---|
| 書き込み | config(※1)、configN (N : 0,1,2,3,4) | |
| ファームウェア(※2)(※3) | 書き込み | exec(※1)、exec0、exec1 |
| techinfo(※4) | 読み出し | techinfo |
※1 : ファイル番号を省略した場合は、起動中のファイルを対象とします。
※2 : ファームウェアの表示においてリビジョン番号が表示されます。[表示例: exec(Rev.10.00.60)]
ただし、RTX1200 Rev.10.01.29以前のファームウェアでは、リビジョン番号が表示されません。
実際にファームウェアを書き込む場合は、"exec"や"execN"と指定することで書き込むことができます。
※3 : vRXシリーズでは使用できません。
※4 : show techinfoコマンドの出力内容を"techinfo"として取得します。
ただし、RTX1200 Rev.10.01.29以前のファームウェアでは、"techinfo"を取得することはできません。
WindowsのコマンドプロンプトやUNIX系OSのシェルでは、一般的にファイルやディレクトリの指定方法としてルートディレクトリ '/' から記述する絶対パスと、 カレントディレクトリを基点として目的のファイル、ディレクトリがどこにあるのかを示す相対パスの2種類があります。 SFTPサーバー機能では、絶対パスと相対パスの両方を用いることが可能です。UNIX系のSFTPの仕様に従い、ホームディレクトリを示す ~ (チルダ)を用いることはできません。
2019年7月時点の動作確認結果です。動作を保証するものではありません。使い方は、SFTPクライアントの説明書などをご確認ください。
【WinSCP使用時の推奨設定項目と注意点】
※WinSCPバージョン4.2.5での設定変更方法を記載します。バージョンによって設定変更方法が異なる場合があります。
SFTPによる設定ファイルの読み書きと、ファームウェアのリビジョンアップの手順を紹介します。
以下の手順において、いずれの場合も、ヤマハルーターのIPアドレスを 192.168.0.1、ユーザー名を"yamaha"、管理者パスワードでログインするとします。パスワード認証を使用した例です。
【OpenSSH 5.3での手順】
設定ファイル"config"を"OLDconfig.txt"に読み出すものとします。
> sftp yamaha@192.168.0.1 Connecting to 192.168.0.1... Password: sftp> get system/config OLDconfig.txt Fetching /system/config to OLDconfig.txt /config 100% 570 0.6KB/s 00:00 sftp>
ホストにあるファイル"NEWconfig.txt"を設定ファイル"config1"に書き込むものとします。
> sftp yamaha@192.168.0.1 Connecting to 192.168.0.1... Password: sftp> put NEWconfig.txt system/config1 Uploading NEWconfig.txt to /system/config1 NEWconfig.txt 100% 4260 4.2KB/s 00:00 sftp>
ホストにあるファイル"rtx1200.bin"をファームウェア"exec0"に書き込むものとします。
リビジョンアップが正常に終了すると、自動的にルーターが再起動します。
> sftp yamaha@192.168.0.1 Connecting to 192.168.0.1... Password: sftp> put rtx1200.bin system/exec0 Uploading rtx1200.bin to /system/exec0 rtx1200.bin 100% 3488KB 768.4KB/s 00:05 sftp> Received disconnect from 192.168.0.1: 2: Disconnect for router restart
ファームウェアの転送が終了し、ファームウェアの書き込みが正常に終了するとセッションが自動切断されます。
ファームウェアの転送からセッションの自動切断まで数十秒間はプロンプト(sftp>)が戻りません。
ファイル"config.txt"をUSBメモリのルートディレクトリに"memory.txt"という名前で書き込むものとします。
> sftp yamaha@192.168.0.1 Connecting to 192.168.0.1... Password: sftp> put config.txt usb1/memory.txt Uploading config.txt to /usb1/momory.txt config.txt 100% 570 0.6KB/s 00:00 sftp>
SFTPでパスワード認証を使用する場合は、login user コマンドで設定したパスワード、もしくは管理者パスワードでログインすることができます。
SFTP接続する際に使用したパスワードによってユーザーが使用できるSFTPの対話コマンドが異なります。
SFTPで公開鍵認証を使用する場合は、authorized_keysファイルにユーザーの公開鍵を登録することによりログインすることができます。
user attribute コマンドの administrator 属性によって使用できるSFTPの対話コマンドが異なります。
| コマンド名 | 説明 |
|---|---|
| ls [-l] [-al] ※1 | ファイルとディレクトリの一覧を表示する |
| cd | ディレクトリを移動する ※移動先のディレクトリを省略することはできません |
| pwd | カレントディレクトリを絶対パスで表示する |
| quit, bye, exit | sftpを終了する |
| コマンド名 | 説明 |
|---|---|
| put | 指定したファイルに書き込む |
| get | 指定したファイルを読み出す |
| ls [-l] [-al] ※1 | ファイルとディレクトリの一覧を表示する |
| cd |
ディレクトリを移動する ※移動先のディレクトリを省略することはできません |
| pwd | カレントディレクトリを絶対パスで表示する |
| rm | 指定したファイルを削除する |
| rename |
指定したファイルのファイル名を変更する ※ファイルを移動することはできません |
| mkdir | 指定したディレクトリを作成する |
| rmdir |
指定したディレクトリを削除する ※空のディレクトリ以外は削除できません |
| quit, bye, exit | sftpを終了する |
本機能において出力されるSYSLOGメッセージを以下に示します。
| レベル | 出力メッセージ | 意味 |
|---|---|---|
| INFO | Login succeed: IPアドレス ユーザー名 as administrator | 管理ユーザーとしてSFTP接続のログインに成功 |
| Login succeed: IPアドレス ユーザー名 as login user | 一般ユーザーとしてSFTP接続のログインに成功 | |
| Permission denied : IPアドレス | sftpd hostコマンドの設定によりアクセスが制限された | |
| Logout: ユーザー名 | SFTP接続からログアウト | |
| Get ファイル名 succeed by ユーザー名 | 設定ファイルの読み出しに成功 | |
| Put ファイル名 succeed by ユーザー名 | 設定ファイルまたはファームウェアの書き込みに成功 | |
| Get ファイル名 failed by ユーザー名 | 設定ファイルの読み出しに失敗 | |
| Put ファイル名 failed by ユーザー名 | 設定ファイルまたはファームウェアの書き込みに失敗 |