このチュートリアルでは、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は単一のデータと制御チャネルを使用します。
SFTPは、2台のコンピューター間で情報を共有する前に、クライアントのIDを確認し、安全な接続が確立されると、暗号化されたデータを送信します。
そのため、SFTPは、その基盤となるセキュリティ機能のため、ほとんどすべての場合にFTPよりも推奨されます。
SCPとSFTPの違いは何ですか
あなたはすでに自問しています:SFTPとSCPの違いは何ですか?どちらもSSHで動作しませんか?
これが答えです。 SCPはファイルの転送にのみ使用でき、非対話型です。同時に、SFTPはより複雑で、インタラクティブなコマンドでディレクトリを作成したり、ディレクトリやファイルを削除したりできます。
SFTPコマンドの使用方法
FileZillaなどのクライアントが言及しているようにSFTPに接続できます。それ以外の場合は、基本的なコマンドを使用してコマンドラインインターフェース内で使用できます。
SFTPは、ユーザー名とパスワード、SSHキー、または組み合わせなど、接続認証のためのいくつかの方法も提供します。
SFTPは、デフォルトで、SSHのデフォルトポートであるポート22を使用します。これはSSHのサブシステムであり、すべてのSSH認証メカニズムをサポートしています。
SFTP接続の確立
LinuxシステムまたはmacOSターミナルからコマンドラインSFTPを使用できます。
sftp [REMOTE_USER]@[REMOTE_SERVER]
たとえば、ユーザー名がjohn
の場合 、ホストのアカウントに接続するにはmyserver.com
、次のように入力します:
sftp [email protected]
プロンプトが表示されたら、パスワードを入力します。すべてが期待どおりに進むと、sftp
が表示されます プロンプトが表示され、リモートサーバーとの対話を開始できます。
Connected to myserver.com.
sftp>
22以外のポートへのSFTP
リモートSSHサーバーがカスタムSSHポート(デフォルトのポート22ではない)で動作する場合は、-P
を使用します SFTPポートを指定するオプション。
sftp -P 2222 [email protected]
便利なSFTPコマンド
簡単なチートシートが必要な場合は、使用可能なすべてのSFTPコマンドのリストを以下に示します。このリストは、help
と入力するだけで見つけることができます。 または?
コマンド。
コマンド | 機能 |
---|---|
cd | リモートホストのディレクトリを変更します。 |
chmod | リモートホスト上のファイルのアクセス許可を変更します。 |
チャウン | リモートホスト上のファイルの所有者を変更します。 |
終了 | リモートホストへの接続を閉じて、SFTPを終了します。 |
取得 | リモートホストからローカルコンピューターにファイルをコピーします。 |
lcd | ローカルコンピュータのディレクトリを変更します。 |
lls | ローカルコンピュータ上の現在のディレクトリの内容を一覧表示します。 |
lmkdir | ローカルコンピュータにディレクトリを作成します。 |
lpwd | ローカルコンピュータの現在の作業ディレクトリを表示します。 |
ls | リモートホスト上の現在のディレクトリの内容を一覧表示します。 |
mkdir | リモートホストにディレクトリを作成します。 |
置く | ローカルコンピューターからリモートホストにファイルをコピーします。 |
pwd | リモートホスト上の現在の作業ディレクトリを表示します。 |
名前の変更 | リモートホスト上のファイルの名前を変更します。 |
rm | リモートホスト上のファイルを削除します。 |
rmdir | リモートホスト上のディレクトリを削除しますが、ディレクトリは空である必要があります。 |
SFTPコマンドを使用したファイルの転送
SFTPを使用すると、2台のマシン間でファイルを安全に転送できます。
単一のファイルをダウンロードするには リモートサーバーから、get
を使用します コマンド:
sftp> get website-logo.jpg
Fetching /home/john/website-logo.jpg
/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 website-logo.jpg to /home/john/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の使用法をある程度理解するのに役立つことを願っています。 sftp
の詳細については Linuxでコマンドを実行するには、そのマニュアルページを参照してください。
ご不明な点やご意見がございましたら、お気軽にコメントをお寄せください。