LinuxでFTPコマンドを使用する方法

ファイル転送プロトコルは、ほとんどのリーダーよりも古いものですが、それでも強力になっています。FTPには最新のプロトコルのセキュリティはありませんが、とにかくそれを使用する必要があるかもしれません。これがその方法です。

警告:インターネット経由でFTPを使用しないでください

これを最初から明確にしましょう。ファイル転送プロトコル(FTP)は1970年代初頭にさかのぼり、セキュリティに関係なく作成されました。暗号化は何にも使用しません。ユーザー名やパスワードなどのログイン資格情報、およびダウンロードまたはアップロードしたデータは、クリアテキストで転送されます。途中で誰でもあなたの秘密を見ることができます。ただし、FTPにはまだ用途があります。

ネットワーク内でファイルを転送する場合は、転送時に機密文書をネットワーク上の誰もパケットスニッフィングや盗聴しない限り、安全である必要があります。ファイルの機密性や機密性がまったくない場合は、FTPを使用して内部ネットワーク内でファイルを移動しても問題ありません。Linuxには、ftpそのシナリオを正確に処理するための標準のコマンドラインプログラムがあります。

しかし、間違いなく使用していない ftp インターネット上でアクセス外部リソースにコマンドを。そのためにsftpは、安全なSSHファイル転送プロトコルを使用するコマンドラインプログラムを使用します。このチュートリアルでは、これらのプログラムの両方を紹介します。

インターネット経由でFTPを使用したくない理由を明確にするために、以下のスクリーンショットをご覧ください。FTPパスワードがプレーンテキストで表示されます。ネットワーク上、またはインターネット上のFTPサーバーとの間の誰でも、パスワードが「MySecretPassword」であることが簡単にわかります。

暗号化がないと、悪意のある攻撃者が、転送中にダウンロードまたはアップロードしているファイルを変更する可能性もあります。

ftpコマンド

FTPサイトに有効なアカウントがあるとすると、次のコマンドで接続できます。この記事全体を通して、コマンドのIPアドレスを接続しているFTPサーバーのIPアドレスに置き換えてください。

ftp 192.168.4.25

警告:このftpコマンドは、信頼できるローカルネットワーク上のサーバーに接続する場合にのみ使用してください。sftpインターネット経由でファイルを転送するには、以下で説明するコマンドを使用します。

FTPサーバーはウェルカムメッセージで応答します。挨拶の文言はサーバーごとに異なります。次に、ログインしているアカウントのユーザー名を尋ねられます。

接続しているサイトのIPアドレスが表示され、その後にLinuxユーザー名が表示されます。FTPサーバーのアカウント名がLinuxユーザー名と同じである場合は、Enterキーを押すだけです。これにより、Linuxユーザー名がFTPサーバーのアカウント名として使用されます。Linuxユーザー名とFTPアカウント名が異なる場合は、FTPアカウントのユーザー名を入力してEnterキーを押します。

FTPサーバーへのログイン

FTPサイトのパスワードを入力するように求められます。パスワードを入力してEnterキーを押します。パスワードは画面に表示されません。FTPユーザーアカウント名とパスワードの組み合わせがFTPサーバーによって確認されると、FTPサーバーにログインします。

ftp>プロンプトが表示されます。

見回してファイルを取得する

まず、FTPサーバー上のファイルのリストを取得することをお勧めします。lsコマンドは、まさにそれを行います。ユーザーは、ファイルgc.cがFTPサーバー上にあることを確認し、自分のコンピューターにダウンロードしたいと考えています。彼のコンピューターは、FTP用語では「ローカルコンピューター」です。

ファイルを取得(または「取得」)するコマンドはgetです。したがって、ユーザーはコマンドを発行しget gc.cます。入力しget、スペースを入力してから、取得するファイルの名前を入力します。

FTPサーバーは、ファイルをローカルコンピューターに転送し、転送が行われたことを確認することで応答します。ファイルのサイズと転送にかかった時間も表示されます。

ls
gc.cを取得する

一度に複数のファイルを取得するには、  mget(multiple get)コマンドを使用します。このmgetコマンドは、各ファイルを順番にダウンロードするかどうかを確認するように求めます。はいの場合は「y」、いいえの場合は「n」を押して応答します。

これは、多数のファイルにとって面倒です。このため、関連ファイルのコレクションは通常、単一のtar.gzまたはtar.bz2ファイルとしてftpサイトに保存されます。

関連:Linuxで.tar.gzまたは.tar.bz2ファイルからファイルを抽出する方法

mget * .c

FTPサーバーへのファイルのアップロード

FTPアカウントに付与されているアクセス許可によっては、ファイルをサーバーにアップロード(または「配置」)できる場合があります。ファイルをアップロードするには、putコマンドを使用します。この例では、ユーザーはSongs.tar.gzFTPサーバーに呼び出されたファイルをアップロードしています。

Songs.tar.gzを置く

ご想像のとおり、FTPサーバーに一度に複数のファイルを配置するコマンドがあります。それはmput(多重プット)と呼ばれます。mgetコマンドが行ったように、mput各ファイルを1つずつアップロードするための「y」または「n」の確認を求めます。

ファイルのセットをtarアーカイブに配置する場合と同じ議論が、ファイルを取得する場合と同じようにファイルを配置する場合にも当てはまります。ユーザーは、次のコマンドを使用して複数の「.odt」ファイルをアップロードしています。

mput * .odt

ディレクトリの作成と変更

ftpサーバーのユーザーアカウントで許可されている場合は、ディレクトリを作成できる場合があります。これを行うためのコマンドはmkdirです。明確にするために、mkdirコマンドで作成するディレクトリは、ローカルコンピュータではなく、ftpサーバー上に作成されます。

ftpサーバー上のディレクトリを変更するには、cdコマンドを使用します。cdコマンドを使用しても、ftp>プロンプトは新しい現在のディレクトリを反映するように変更されません。pwd(印刷作業ディレクトリ)コマンドは、あなたの現在のディレクトリが表示されます。

ftpユーザーは、musicというディレクトリを作成し、その新しいディレクトリに変更し、pwdコマンドを使用して現在地を確認してから、そのディレクトリにファイルをアップロードします。

mkdir music
CDミュージック
pwd
置くsongs.tar.gz

現在のディレクトリの親ディレクトリにすばやく移動するには、cdupコマンドを使用します。

cdup

ローカルコンピュータへのアクセス

ローカルコンピュータのディレクトリを変更するにlcdは、ftp>プロンプトでコマンドを使用できます。ただし、ローカルファイルシステムのどこにいるかを見失うことは簡単です。ローカルファイルシステムにアクセスするより便利な方法は、!コマンドを使用することです。

この!コマンドは、ローカルコンピューターへのシェルウィンドウを開きます。このシェルでは、標準のターミナルウィンドウでできることなら何でもできます。あなたが入力するとexit、あなたはに戻りますftp>プロンプト。

ユーザーが!コマンドを使用して、ローカルコンピューターのシェルウィンドウに入りました。彼らはls、そのディレクトリにどのファイルが存在するかを確認するコマンドを発行exitし、ftp>入力してプロンプトに戻りました。

ls
出口

ファイルの名前変更

FTPサーバー上のファイルの名前を変更するには、renameコマンドを使用します。ここで、FTPユーザーはでファイルの名前を変更してからrenamelsコマンドを使用してディレクトリ内のファイルを一覧表示します。

songs.tar.gzの名前を変更しますrock_songs.tar.gz
ls

ファイルの削除

FTPサーバー上のファイルを削除するには、deleteコマンドを使用します。複数のファイルを一度に削除するには、mdeleteコマンドを使用します。各ファイルの削除について、「y」または「n」の確認を提供するように求められます。

ここで、FTPユーザーはファイルをリストして名前を確認し、削除するファイルを選択しました。次に、それらをすべて削除することにします。

ls
gc.oを削除します
mdelete * .o

sftpコマンドの使用

IPアドレッシングシステムに精通している読者は、上記の例で使用されているFTPサーバーの192.168アドレスが内部IPアドレスであり、プライベートIPアドレスとも呼ばれることに気付くでしょう。この記事の冒頭で警告したように、このftpコマンドは内部ネットワークでのみ使用する必要があります。

リモートまたはパブリックFTPサーバーに接続する場合は、sftpコマンドを使用します。ユーザーはdemo、にある公的にアクセス可能なFTPサーバーで呼び出されるSFTPアカウントに接続しますtest.trebex.net

接続すると、接続が確立されたことが通知されます。また、ホストの信頼性を検証できないことも通知されます。これは、新しいホストの最初の接続では正常です。「y」を押して接続を受け入れます。

ユーザーアカウント名(demo)がコマンドラインで渡されたため、ユーザーアカウント名の入力を求められません。パスワードの入力のみを求められます。これが入力され、検証され、受け入れられ、sftp>プロンプトが表示されます。

sftp [email protected]

上記で説明したFTPコマンドは、次の例外を除いて、SFTPセッションでもまったく同じように機能します。

  • ファイルを削除するには使用rm(FTPは使用delete
  • 複数のファイルを削除するには、を使用しますrm(FTPはを使用しますmdelete
  • 親ディレクトリに移動するには、を使用しますcd ..(FTPはを使用しますcdup

ユーザーは、SFTPセッションでいくつかのコマンドを使用しました。それらはls、ファイルをリストcdし、pubディレクトリに変更するために使用されます。彼らは、pwdを使用して作業ディレクトリを印刷しました。

Linuxの世界でファイルを転送する他のオプション、特にscp(セキュアコピー)がありますが、ここではFTPとSFTPに焦点を当てています。該当するシナリオで使用すると、これら2つのコマンドが役立ち、ファイルの保存と取得のニーズが高まります。