ウェブサイト検索

安全なファイル転送のための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.jpg
Fetching /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.jpg
Uploading <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コマンドに関してさらに詳しい情報が必要な場合は、マニュアルページを参照してください。

質問やフィードバックがあれば、お気軽にコメントしてください。

関連記事: