ウェブサイト検索

Linux で sFTP を使用してファイル/ディレクトリをアップロードまたはダウンロードする方法


sFTP (安全なファイル転送プログラム) は、FTP (ファイル転送プロトコル) と同様の方法で動作する、安全で対話型のファイル転送プログラムです。ただし、sFTPFTP よりも安全です。すべての操作は暗号化された SSH トランスポート経由で処理されます。

公開キー認証や圧縮など、いくつかの便利な SSH 機能を使用するように構成できます。指定したリモート マシンに接続してログインし、ユーザーがさまざまなコマンドを実行できる対話型コマンド モードに切り替えます。

この記事では、sFTP を使用してディレクトリ全体 (そのサブディレクトリとサブファイルを含む) をアップロード/ダウンロードする方法を説明します。

Linux で sFTP を使用してファイル/ディレクトリを転送する方法

デフォルトでは、SFTP はリモート サーバーへの安全な接続を確立するために同じ SSH トランスポートを採用します。デフォルトの SSH 設定と同様にユーザーの認証にはパスワードが使用されますが、リモート ホストへの接続を簡略化してより安全にするために、SSH パスワードなしのログインを作成して使用することをお勧めします。

リモート FTP サーバーに安全に接続する

リモート SFTP サーバーに接続するには、まず安全な SSH 接続を確立し、次に示すように SFTP セッションを作成します。

sftp [email 

リモート ホストにログインしたら、以下の例のように対話型のsFTP コマンドを実行できます。

sftp> ls			#list directory 
sftp> pwd			#print working directory on remote host
sftp> lpwd			#print working directory on local host
sftp> mkdir uploads		#create a new directory

sFTP を使用してディレクトリをアップロードする方法

ディレクトリ全体をリモート Linux ホストにアップロードするには、put コマンドを使用します。ただし、以下のスクリーンショットに示すように、リモート ホストの作業ディレクトリにディレクトリ名が存在しない場合は、エラーが発生します。

したがって、まずリモート ホスト上に同じ名前のディレクトリを作成し、それをローカル ホストからアップロードする前に、 -r が魔法を実行して、サブディレクトリとサブファイルもコピーできるようにします。

sftp> put -r  linux-console.net-articles
sftp> mkdir linux-console.net-articles
sftp> put -r linux-console.net-articles

転送された元のファイルの変更時刻、アクセス時刻、およびモードを保存するには、-p フラグを使用します。

sftp> put -pr linux-console.net-articles

sFTP を使用してディレクトリをダウンロードする方法

fstools-0.0 というディレクトリ全体をリモート Linux ホストからローカル マシンにダウンロードするには、次のように -r フラグを指定して get コマンドを使用します。

sftp> get -r fstools-0.0

次に、ローカル ホスト上の現在の作業ディレクトリをチェックインします (ディレクトリにすべてのコンテンツが含まれていることがダウンロードされているかどうか)。

sFTP シェルを終了するには、次のように入力します。

sftp> bye
OR
sftp> exit

さらに、sFTP コマンドと使用上のヒントも読んでください。

セキュリティ上の理由から、ユーザーがリモート ホスト上のファイル システム全体にアクセスできないようにするには、chroot Jail を使用して sFTP ユーザーをホーム ディレクトリに制限できることに注意してください。

それでおしまい!この記事では、sFTP を使用してディレクトリ全体をアップロード/ダウンロードする方法を説明しました。この記事/トピックについてのご意見がある場合は、以下のコメント セクションをご利用ください。