はじめに
SFTP(Safe File Transfer Protocol)は、リモートシステム間でファイルを安全に転送するために設計されたSSHプロトコルの一部です。これにより、ユーザーはリモートシステムのファイルとディレクトリのアクセス許可を表示、管理、および変更できます。
このチュートリアルでは、SFTPで使用できるコマンドについて説明し、それぞれの説明、オプション、例を示します。
前提条件
- SSH公開鍵ペアを使用して接続されたローカルシステムとリモートサーバーへのアクセス。
- インターネット接続が機能しています。
- ターミナルウィンドウへのアクセス。
SFTPコマンドとオプションのリスト
SFTPを使用すると、ユーザーはリモートSFTPサーバーとローカルクライアントシステム間でデータを転送できます。 SFTPは、SSHネットワークプロトコルを使用して、公開SSHキーを共有する2つのシステムを接続します。
SFTPサーバーに接続すると、SFTPシェルインターフェイスが開きます。 SFTPシェルインターフェイスは、次のコマンドをサポートしています。
| コマンド | 説明 |
cd [path] | リモートサーバーのディレクトリを[path]に変更します 。 |
lcd [path] | ローカルシステムのディレクトリを[path]に変更します 。 |
chgrp [group ID] [path] | グループの所有権を[group ID]に変更します [path]にあるファイルまたはフォルダーの場合 。 |
chmod [mode] [path] | 所有権を[mode]に変更します [path]にあるファイルまたはフォルダーの場合 。 |
chown [user ID] [path] | ユーザーの所有権を[user ID]に変更します [path]にあるファイルまたはフォルダーの場合 。 |
help | ヘルプテキストを表示します。 |
get [remote path] [local path] | [remote path]からファイルまたはディレクトリを転送します リモートサーバーで[local path] ローカルシステム上。 |
lls [options] [path] | [path]にあるディレクトリのリストを表示します ローカルシステム上。 lsを使用します コマンドオプション。 |
ln [old path] [new path] | [old path]からシンボリックリンクを作成します [new path]へ リモートサーバー上。 |
lmkdir [path] | [path]にディレクトリを作成します ローカルシステム上。 |
lpwd | 現在のローカルディレクトリを表示します。 |
ls [options] [path] | [path]にあるディレクトリのリストを表示します リモートサーバー上。 lsを使用します コマンドオプション。 |
lumask [mask] | ローカル権限マスクを[mask]に設定します 。 |
mkdir [path] | [path]にディレクトリを作成します リモートサーバー上。 |
put [local path] [remote path] | [local path]からファイルまたはディレクトリを転送します ローカルシステムで[remote path] リモートサーバー上。 |
pwd | 現在のリモートディレクトリを表示します。 |
exit | SFTPインターフェースを終了します。 |
exit | SFTPインターフェースを終了します。 |
rename [old path] [new path]の名前を変更 | リモートサーバー上のファイルの名前を[old path]から変更します [new path]へ 。 |
rmdir [path] | [path]にあるディレクトリを削除します リモートサーバー上。 |
rm [path] | [path]にあるファイルを削除します リモートサーバー上。 |
symlink [old path] [new path] | [old path]からシンボリックリンクを作成します [new path]へ リモートサーバー上。 |
version | SFTPの現在のバージョンを表示する |
![command] | <strong>[command]</strong> を実行します ローカルシェルで。 |
! | 一時的にローカルシェルに移動します。 |
? | ヘルプテキストを表示します。 |
SFTPへの接続
SFTPへの接続は、SSHを使用したリモートシステムへの接続と同じ構文を使用します。
sftp [username]@[remote hostname or IP address] たとえば、 phoenixnapを使用してサーバーに接続します IPアドレスのユーザー名192.168.100.7 :
sftp [email protected]
接続が成功すると、シェルは sftp>で示されるSFTPインターフェースに移動します。 現在のユーザー名の代わりに:
SFTPを使用してリモートシステムに接続する場合は、 sftpで次のオプションを使用してください 動作を変更するコマンド:
| オプション | 説明 |
-1 | 接続するときはSSHプロトコルのバージョン1を使用してください。 |
-4 | IPv4アドレスのみを使用してください。 |
-6 | IPv6アドレスのみを使用してください。 |
-A | SSH認証エージェントをリモートサーバーに転送できるようにします。 |
-a | 中断されたファイル転送を続行しようとします。 |
-B [buffer size] | カスタムバッファサイズを設定します(デフォルト値は32,768バイトです)。 |
-b [batch file] | sftpを開始するバッチファイルを指定します バッチモードのコマンド。 |
-C | ファイル圧縮を使用します。 |
-c [cipher] | 転送するデータを暗号化するときに使用する暗号を選択します。 |
-D [SFTP server path] | SSHを使用せずにローカルSFTPサーバーに接続します。 |
-F [SSH configuration file] | 接続時に使用するSSH構成ファイルを指定します。 |
-f | 転送直後にファイルをディスクにフラッシュします。 |
-i [private key file] | 公開鍵認証用の秘密鍵を含むファイルを選択します。 |
-J [destination] | 指定された宛先を介してTCP転送を設定します。 |
-l [kbit/s] | 接続帯域幅の制限をkbit/秒で設定します。 |
-N | クワイエットモードを無効にします。 |
-o [SSH option] | SFTPに接続するときにsshコマンドオプションを追加します。 |
-P [port number] | 接続するポートを設定します。 |
-p | 転送時にファイルのアクセス許可とアクセス時間を保持します。 |
-q | クワイエットモードを有効にします。 |
-R [number of requests] | 許可される同時ファイル転送リクエストの数を設定します。 |
-r | ディレクトリを再帰的に転送します。 |
-S [client] | 接続に使用するSFTPクライアントを指定します。 |
-s [SSH subsystem or SFTP server path] | SSH2サブシステムまたはSFTPサーバーパスを選択します。 |
-v | 詳細なセッションログを保持します。 |
exitを使用します 現在の接続を終了するコマンド:
exit ファイルの転送
getを使用します およびput SFTPでファイル転送要求を作成するコマンド。 get コマンドは、ファイルをリモートサーバーからローカルシステムに転送しますが、 put コマンドは反対のことをします。
get コマンドは次の基本構文を使用します:
get [path to file]
getを使用する コマンドは、リモートサーバーからローカルシステムのホームにファイルを転送します ディレクトリ。例:
get example01.txt
一方、 putを使用する コマンドは、ファイルをローカルシステムからリモートサーバーのホームに転送します ディレクトリ:
put example02.txt
ファイルを別のディレクトリに転送するには、ディレクトリの名前を getの最後に追加します またはput コマンド:
get [path to file] [path to directory]
put [path to file] [path to directory]
ローカルシステム上のファイルの名前を変更するには、コマンドの最後に新しいファイル名を追加します。
get [path to file] [new file name]
put [path to file] [new file name]
get およびput コマンドは次のオプションを使用します:
| オプション | 説明 |
-a | ファイル転送を再開しようとします。 |
-f | 転送直後にファイルをディスクにフラッシュします。 |
-p | 転送中にファイルのアクセス許可とアクセス時間を保持します。 |
-R | ディレクトリ全体を再帰的に転送します。このオプションを使用する場合は、ファイルへのパスではなく、ディレクトリへのパスを定義してください。 |
ファイルのアクセス許可の変更
SFTPでは、リモートサーバー上のファイルとディレクトリのアクセス許可を変更することもできます。 chown コマンドは、個々のユーザーのファイル所有権を変更します:
chown [user ID] [path to file]
chownとは異なり ユーザーIDが必要なコマンドであるchmodコマンドは、標準のシェルと同じように機能します。
chmod [permission] [path to file]
別のオプションは、 chgrpを使用することです ファイルのグループ所有権を変更するコマンド:
chgrp [group ID] [path to file]
SFTPでは、ローカルumaskを設定して、ローカルシステムに転送される将来のすべてのファイルのデフォルトのアクセス許可を変更することもできます。 lumaskを使用します 新しいローカルumaskを設定するコマンド:
lumask [permission mask] ファイルとディレクトリの管理
SFTPは、ユーザーがローカルシステムとリモートサーバーの両方でファイルを確認および管理できるようにするオプションを提供します。 ls コマンドを使用すると、リモートサーバー上のファイルとディレクトリを一覧表示できます。例:
ls -l
同様に、 lls (ローカル ls )コマンドは、ローカルシステム上のファイルとディレクトリを一覧表示します:
lls -l
cd およびlcd コマンドは、リモートサーバーまたはローカルシステムの現在の作業ディレクトリをそれぞれ変更します。
cd [path to directory on the remote server]
lcd [path to directory on the local system]
mkdirコマンドを使用すると、指定したパスを使用してリモートサーバー上にディレクトリが作成されます。
mkdir [path to the new directory on the remote server] たとえば、 Example_Directoryを作成します ホーム ディレクトリ:
mkdir Example_Directory
mkdir コマンドには出力がないため、 lsを使用する必要があります 結果を確認するコマンド:
これと同様に、 lmkdir コマンドはローカルシステムにディレクトリを作成します:
lmkdir [path to the new directory on the local system] 同じ例を使用して:
lmkdir Example_Directory
rename コマンドは、リモートサーバー上のファイルまたはディレクトリの名前を変更します:
rename [old path] [new path] たとえば、名前を example01.txtに変更します。 sampledoc.txtへ :
rename example01.txt sampledoc.txt
rmを使用する コマンドはリモートサーバーからファイルを削除します:
rm [path to file] たとえば、 sampledoc.txtを削除します ファイル:
rm sampledoc.txt
同様に、 rmdir コマンドはリモートサーバーからディレクトリを削除します:
rmdir [path to directory] たとえば、 Example_Directoryを削除します :
rmdir Example_Directory
ln およびsymlink コマンドは、リモートサーバー上のファイルまたはディレクトリへのシンボリックリンクを作成します。
ln [old path] [new path]
symlink [old path] [new path]
たとえば、 example02.txtへのリンクを作成します 名前付きexample_link lnを使用する コマンド:
ln example02.txt example_link
pwd コマンドは、リモートサーバー上の現在の作業ディレクトリを出力として表示します:
pwd
一方、 lpwd コマンドは、ローカルシステム上の現在の作業ディレクトリを示す出力を作成します。
lpwd
ローカルシェルコマンドの実行
SFTPを使用すると、感嘆符(!)を追加して、ローカルシェルを使用してコマンドを実行できます。 )コマンドの前。これにより、ユーザーはローカルシステムで標準のSFTPシェルの一部ではないコマンドを実行できます。
たとえば、SFTPはtreeをサポートしていません Linuxのコマンド。ローカルシェルを使用すると、SFTPインターフェイスで次のコマンドを実行できます。
!tree
感嘆符を使用する(! )コマンドなしで、ユーザーを一時的にローカルシェルに移動します。 SFTPシェルに戻るには、 exitを使用します コマンド。
その他のコマンド
helpを使用する または? コマンドは、SFTPインターフェイスのヘルプテキストを表示します。ヘルプには、SFTPシェルで使用可能なコマンドのリストが表示されます。
version コマンドは、インストールされているSFTPプロトコルの現在のバージョンを表示します:
SFTPチートシートPDF
以下に、上記のすべてのSFTPコマンドとオプションを含む1ページのリファレンスシートを示します。下のリンクをクリックして、PDFファイルとして保存してください。
SFTPチートシートをダウンロード