安全なファイル転送のためのSFTPコマンドの使い方
このチュートリアルでは、ファイルを安全に転送するためのsftpコマンドの実用的な例を示します。
SFTPとは何ですか
SFTPはSecure File Transfer Protocolの略です。「S」は時にはSSH(Secure Shell)を指すこともあり、これはファイル転送サービスが通過する安全で暗号化されたトンネルです。
SFTPは、リモートシステム上でファイルを安全に転送するための一般的な方法です。sftpコマンドは通常、OpenSSHパッケージの一部です。
SSH v2.0の拡張を目的として、安全なファイル転送機能を強化するように設計されました。さらに、sftpコマンドラインインターフェースは、ftpコマンドに似ています。
FTPとSFTPの違いは何ですか?
従来のFTPプロトコルと比較して、SFTPはFTPのすべての機能を提供しますが、より安全で設定が簡単です。FTPとは異なり、SFTPは単一のデータおよび制御チャネルを使用します。
2つのコンピュータ間で情報を共有する前に、SFTPはクライアントの身份を確認し、安全な接続が確立されると、暗号化されたデータを送信します。
したがって、SFTPはその基盤となるセキュリティ機能のおかげで、ほとんどすべてのケースでFTPよりも好まれます。
SCPとSFTPの違いは何ですか?
あなたは既に自問自答しているでしょう:SFTPとSCPの違いは何ですか?どちらもSSHで動作するのではないですか?
関連: FTPとFTPSとSFTP: それらの違いの説明
こちらが答えです。SCPはファイル転送にのみ使用でき、非対話型です。同時に、SFTPはより詳細で、ディレクトリの作成、ディレクトリやファイルの削除などの対話型コマンドを許可します。
SFTPコマンドの使い方
クライアントによって述べられているように、FileZillaなどを使用してSFTPに接続できます。そうでなければ、基本的なコマンドを使用してコマンドラインインターフェース内で使用できます。
関連: セキュアなファイル転送のためのFileZillaを使用してSFTPに接続する方法
SFTPは、ユーザー名とパスワード、SSHキー、またはその組み合わせなど、接続認証のためのいくつかの方法も提供しています。
SFTPはデフォルトでポート22を使用します。これはSSHのデフォルトポートです。SFTPはSSHのサブシステムであり、すべてのSSH認証メカニズムをサポートしています。
SFTP接続の確立
LinuxシステムやmacOSターミナルからコマンドラインSFTPを使用できます。
sftp [REMOTE_USER]@[REMOTE_SERVER]例えば、あなたのユーザー名がjohnの場合、ホストmyserver.comでアカウントに接続するには、次のように入力します:
sftp john@myserver.comプロンプトが表示されたらパスワードを入力してください。すべてが順調に進めば、sftpプロンプトが表示され、リモートサーバーと対話を始めることができます。
Connected to myserver.com.
sftp>ポート22以外へのSFTP
リモートSSHサーバーがカスタムSSHポート(デフォルトのポート22ではない)で動作している場合は、-Pオプションを使用してSFTPポートを指定します。
sftp -P 2222 john@myserver.com便利なSFTPコマンド
迅速なチートシートが必要な場合は、利用可能なすべてのSFTPコマンドのリストがあります。このリストは、単にhelpまたは?コマンドを入力することで自分で見つけることができます。
| コマンド | 機能 |
|---|---|
| CD | リモートホスト上のディレクトリを変更します。 |
| chmod | リモートホスト上のファイルの権限を変更します。 |
| chown | リモートホスト上のファイルの所有者を変更します。 |
| 出口 | リモートホストとの接続を切断し、SFTPを終了します。 |
| 得る | リモートホストからローカルコンピュータにファイルをコピーします。 |
| 液晶 | ローカルコンピュータのディレクトリを変更してください。 |
| lls | ローカルコンピュータの現在のディレクトリの内容をリストします。 |
| lmkdir | ローカルコンピュータにディレクトリを作成します。 |
| lpwd | ローカルコンピュータで現在の作業ディレクトリを表示します。 |
| ls | リモートホストの現在のディレクトリの内容をリストします。 |
| mkdir | リモートホストにディレクトリを作成します。 |
| 置く | ローカルコンピュータからリモートホストにファイルをコピーします。 |
| パスワード | リモートホスト上の現在の作業ディレクトリを表示します。 |
| 名前を変更する | リモートホスト上のファイルの名前を変更する。 |
| rm | リモートホスト上のファイルを削除します。 |
| rmdir | リモートホスト上のディレクトリを削除しますが、そのディレクトリは空でなければなりません。 |
SFTP コマンドを使ったファイル転送
SFTPは、2台のマシン間でファイルを安全に転送することを可能にします。
リモートサーバーから単一のファイルをダウンロードするには、 get コマンドを使用します:
sftp> get website-logo.jpgFetching /home/john/website-logo.jpg
<meta http-equiv="content-type" content="text/html; charset=utf-8">/home/john/website-logo.jpg 100% 11KB 154.7KB/s 00:00リモートシステムからディレクトリをダウンロードするには、-r (再帰的)オプションを使用してください。
sftp> get -r images/ローカルマシンからリモートSFTPサーバーにファイルをアップロードするには、 put コマンドを使用します:
sftp> put website-logo.jpgUploading <meta http-equiv="content-type" content="text/html; charset=utf-8">website-logo.jpg to /home/john/<meta http-equiv="content-type" content="text/html; charset=utf-8">website-logo.jpg
dogtoman-tmp-logo.png 100% 11KB 235.4KB/s 00:00ローカルディレクトリをアップロードする リモートSFTPサーバーに:
sftp> put -r images/
もちろん、上記の表に示されたSFTPコマンドを自由に試すことができます。
作業が終わったら、exitと入力して接続を閉じてください。
結論
これは、SFTPを使用して安全なファイル転送を行うための基本をカバーしています。このチュートリアルでは、sftpコマンドを使用してリモートSFTPサーバーにファイルをダウンロードおよびアップロードする方法を示します。
この記事が、SFTPの使用方法をある程度理解する手助けになることを願っています。Linuxのsftpコマンドに関してさらに詳しい情報が必要な場合は、マニュアルページを参照してください。
質問やフィードバックがあれば、お気軽にコメントしてください。
