重要なポイント
- FTP はセキュリティ対策が施されていない時代遅れのプロトコルであるため、インターネット上で使用するのは安全ではありません。信頼されたローカル ネットワーク内でのファイル転送にのみ使用してください。
- FTP を使用する場合は、ログイン認証情報と転送されるデータがクリア テキストで送信されることに注意してください。
- インターネット上で安全にファイルを転送するには、SSH ファイル転送プロトコルを利用し、機密情報を保護するための暗号化を提供する sftp コマンド ライン プログラムを使用します。
ファイル転送プロトコルは、ほとんどの読者よりも古いものですが、依然として強力です。 FTP には最新のプロトコルのようなセキュリティはありませんが、それでも使用する必要がある場合があります。その方法は次のとおりです。
警告: インターネット上で FTP を使用しないでください
最初からこれを明確にしておきます。ファイル転送プロトコル (FTP) は 1970 年代初頭に遡り、セキュリティをまったく考慮せずに作成されました。 暗号化 は一切使用されません。ユーザー名やパスワードなどのログイン資格情報、およびダウンロードまたはアップロードしたデータはクリア テキストで転送されます。途中で誰でもあなたの秘密を閲覧できます。ただし、FTP にはまだ用途があります。
ネットワーク内でファイルを転送する場合、ネットワーク上の誰も転送中に機密文書をパケットスニッフィングしたり盗聴したりしない限り、安全であるはずです。ファイルが機密性や機密性をまったく持たない場合は、FTP を使用して内部ネットワーク内でファイルを移動しても問題ありません。 Linux には、まさにそのようなシナリオに対処する標準の
ftp
コマンド ライン プログラム
があります。
ただし、インターネット経由で外部リソースにアクセスするために
ftp
コマンドを使用しないでください。そのためには、安全な SSH ファイル転送プロトコルを使用する
sftp
コマンド ライン プログラム
を使用します。このチュートリアルでは、これらのプログラムの両方を紹介します。
インターネット上で FTP を使用したくない理由を明確にするために、以下のスクリーンショットを見てください。 FTPパスワードを平文で表示します。ネットワーク上、またはインターネット上の FTP サーバーとの間の誰でも、パスワードが「MySecretPassword」であることを簡単に知ることができます。
暗号化がないと、悪意のある攻撃者が転送中にダウンロードまたはアップロードしているファイルを変更する可能性があります。
ftp コマンドの使用方法
FTP サイトに有効なアカウントがある場合は、次のコマンドを使用して接続できます。この記事では、コマンド内の IP アドレスを、接続している FTP サーバーの IP アドレスに置き換えてください。
ftp 192.168.4.25
ftp
コマンドは、信頼できるローカル ネットワーク上のサーバーに接続する場合にのみ使用してください。インターネット経由でファイルを転送するには、以下で説明する
sftp
コマンドを使用します。
「 Linux で FTP コマンドを使用する方法」に関するベスト動画選定!
FTP サーバーはウェルカム メッセージで応答します。挨拶の文言はサーバーごとに異なります。次に、ログインしているアカウントのユーザー名を求められます。
接続しているサイトの IP アドレスの後に Linux ユーザー名が表示されていることに注目してください。 FTP サーバー上のアカウント名が Linux ユーザー名と同じ場合は、Enter キーを押すだけです。これにより、Linux ユーザー名が FTP サーバー上のアカウント名として使用されます。 Linux ユーザー名と FTP アカウント名が異なる場合は、FTP アカウントのユーザー名を入力して Enter キーを押します。
FTPサーバーへのログイン
FTP サイトのパスワードを入力するよう求められます。パスワードを入力して Enter を押します。パスワードは画面に表示されません。 FTP ユーザー アカウント名とパスワードの組み合わせが FTP サーバーによって検証されると、FTP サーバーにログインできます。
ftp>
プロンプトが表示されます。
周りを見回してファイルを取得する
まず、FTP サーバー上のファイルのリストを取得する必要があるでしょう。
ls
コマンドはまさにそれを行います。ユーザーは、FTP サーバー上に
gc.c
ファイルがあることを確認し、それを自分のコンピュータにダウンロードしたいと考えています。彼のコンピュータは、FTP 用語での「ローカル コンピュータ」です。
ファイルを取得 (または「取得」) するコマンドは
get
です。したがって、ユーザーは
get gc.c
コマンドを発行します。
get
とスペースを入力し、取得するファイルの名前を入力します。
FTP サーバーは、ファイルをローカル コンピュータに転送し、転送が行われたことを確認することで応答します。ファイルのサイズと転送にかかった時間も表示されます。
ls
gc.cを取得する
複数のファイルを一度に取得するには、
mget
(複数取得) コマンドを使用します。
mget
コマンドを実行すると、各ファイルを順番にダウンロードするかどうかを確認するメッセージが表示されます。はいの場合は「y」を、いいえの場合は「n」を押して応答してください。
ファイル数が多い場合、これは面倒です。このため、関連ファイルのコレクションは通常、単一の として FTP サイトに保存されます。
mget *.c
FTPサーバーへのファイルのアップロード
FTP アカウントに付与されているアクセス許可によっては、ファイルをサーバーにアップロード (または「配置」) できる場合があります。ファイルをアップロードするには、
put
コマンドを使用します。この例では、ユーザーは
Songs.tar.gz
というファイルを FTP サーバーにアップロードしています。
Songs.tar.gz を置く
おそらくご想像のとおり、複数のファイルを一度に FTP サーバーに置くコマンドがあります。これを
mput
(マルチプルプット)といいます。
mget
コマンドと同様に、
mput
各ファイルのアップロードについて「y」または「n」の確認を 1 つずつ要求します。
ファイルのセットを tar アーカイブに配置する場合と同じ議論が、ファイルを取得する場合と同様にファイルの配置にも当てはまります。ユーザーは次のコマンドを使用して複数の「.odt」ファイルをアップロードしています。
入力 *.odt
FTPを使用したディレクトリの作成と変更
FTP サーバー上のユーザー アカウントが許可している場合は、ディレクトリを作成できる可能性があります。これを行うコマンドは
mkdir
です。明確にしておきますが、
mkdir
コマンドで作成したディレクトリはローカル コンピュータではなく FTP サーバー上に作成されます。
FTP サーバー上のディレクトリを変更するには、
cd
コマンドを使用します。
cd
コマンドを使用する場合、
ftp>
プロンプトは新しい現在のディレクトリを反映するように変更されません。
pwd
(print working directory) コマンドを実行すると、現在のディレクトリが表示されます。
FTP ユーザーは、music というディレクトリを作成し、その新しいディレクトリに移動し、
pwd
コマンドを使用して場所を確認してから、そのディレクトリにファイルをアップロードします。
mkdir音楽
CD音楽
障害者
songs.tar.gzを入れる
現在のディレクトリの親ディレクトリにすぐに移動するには、
cdup
コマンドを使用します。
cdup
FTPでローカルコンピュータにアクセスする
ローカル コンピューター上のディレクトリを変更するには、
ftp>
プロンプトで
lcd
コマンドを使用します。ただし、ローカル ファイル システムのどこにいるのかを見失いやすくなります。ローカル ファイルシステムにアクセスするより便利な方法は
!
指示。
!
コマンドは、ローカル コンピューターのシェル ウィンドウを開きます。このシェルでは、標準のターミナル ウィンドウで実行できることはすべて実行できます。
exit
と入力すると、
ftp>
プロンプトに戻ります。
私たちのユーザーは
!
コマンドを実行し、ローカル コンピューター上のシェル ウィンドウに入ります。彼らは
ls
コマンドを発行してそのディレクトリにどのようなファイルが存在するかを確認し、
exit
と入力して
ftp>
プロンプトに戻りました。
!
ls
出口
FTPでファイルの名前を変更する
FTP サーバー上のファイルの名前を変更するには、
rename
コマンドを使用します。ここでは、FTP ユーザーが
rename
でファイルの名前を変更し、
ls
コマンドを使用してディレクトリ内のファイルを一覧表示します。
songs.tar.gzの名前を変更しますrock_songs.tar.gz
ls
FTPを使用したファイルの削除
FTP サーバー上のファイルを削除するには、
delete
コマンドを使用します。複数のファイルを一度に削除するには、
mdelete
コマンドを使用します。各ファイルを削除する場合は、「y」または「n」の確認を求められます。
ここでは、FTP ユーザーがファイルをリストして名前を確認し、削除するファイルを選択しています。その後、それらをすべて削除することを決定します。
ls
gc.o を削除する
mdelete *.o
sftpコマンドの使用
IP アドレス指定システムに詳しい読者は、上記の例で使用されている FTP サーバーの 192.168 アドレスが内部 IP アドレス (プライベート IP アドレスとも呼ばれる) であることに気づいたでしょう。この記事の冒頭で警告したように、
ftp
コマンドは内部ネットワークでのみ使用してください。
リモートまたはパブリック FTP サーバーに接続する場合は、
sftp
コマンドを使用します。ユーザーは、
test.trebex.net
にある公的にアクセス可能な FTP サーバー上の、
demo
という名前の SFTP アカウントに接続します。
接続すると、接続が確立されたことが通知されます。また、ホストの信頼性を検証できないことも通知されます。これは、新しいホストへの最初の接続では正常です。 「y」を押して接続を受け入れます。
ユーザー アカウント名 (
demo
) がコマンド ラインで渡されたため、ユーザー アカウント名の入力を求められません。パスワードの入力のみを求められます。これが入力、検証されて受け入れられると、
sftp>
プロンプトが表示されます。
sftp デモ@test.rebex.net
上で説明した FTP コマンドは、次の例外を除いて、SFTP セッションでも同様に機能します。
-
ファイルを削除するには、
rm使用します (FTP はdelete使用します)。 -
複数のファイルを削除するには、
rm使用します (FTP はmdelete使用します)。 -
親ディレクトリに移動するには、
cd ..使用します (FTP はcdupを使用します)。
ユーザーは SFTP セッションでいくつかのコマンドを使用しました。
ls
を使用してファイルをリストし、
cd
使用して pub ディレクトリに移動します。彼らは
pwd
を使用して作業ディレクトリを出力しました。
Linux の世界にはファイルを転送するための他のオプション、特に
scp
(
セキュア コピー
) がありますが、ここでは FTP と SFTP に焦点を当てました。該当するシナリオで使用されるこれら 2 つのコマンドは、ファイルの保存と取得のニーズに適切に対応します。





