SCP を使用して VM との間でファイルを移動する

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット

この記事では、Secure Copy (SCP) を使用して、ワークステーションと Azure VM 間でファイルをやり取りする方法を説明します。 Azure インフラストラクチャの管理においては、ワークステーションと VM の間でファイルを安全かつ迅速にやり取りできることが重要です。

この記事では、SSH が有効な Azure にデプロイされた VM が必要です。 また、ローカル コンピューター用の SCP クライアントも必要です。 SSH 上に構築されており、ほとんどの Linux および Windows (10 以降) インストールの既定のシェルに含まれています。

クイック コマンド

ファイルを VM にアップロードする

scp file azureuser@azurehost:directory/targetfile

VM からファイルをダウンロードする

scp azureuser@azurehost:directory/file targetfile

詳細なチュートリアル

例として、VM に Azure 構成ファイルを移動し、両方とも SCP を使用して、ログ ファイルのディレクトリを取得します。

SSH キー ペア認証

SCP は、トランスポート層に SSH を使用します。 SSH は転送先のホストで認証を処理し、SSH に既定で備わっている暗号化されたトンネルでファイルを移動します。 SSH 認証に、ユーザー名とパスワードを使用できます。 ただし、セキュリティのベスト プラクティスとして、SSH 公開キー認証および秘密キー認証をお勧めします。 SSH によって接続が認証されると、SCP がファイルのコピーを開始します。 適切に構成された ~/.ssh/config と SSH 公開キーおよび秘密キーを使うと、(IP アドレスの) サーバー名のみを使って SCP 接続を確立できます。 SSH キーが 1 つしかない場合は、SCP が ~/.ssh/ ディレクトリでキーを探し、既定で VM へのログインに使用します。

~/.ssh/config と SSH 公開キーと秘密キーの構成方法について詳しくは、SSH キーの作成に関する記事をご覧ください。

VM にファイルをアップロードする

最初の例では、Azure 構成ファイルを、自動化のデプロイに使用される VM にコピーします。 このファイルには秘密情報が含まれる Azure API の資格情報が入っているため、セキュリティが重要です。 SSH が提供する暗号化されたトンネルがファイルのコンテンツを保護します。

次のコマンドは myserver.eastus.cloudapp.azure.com を使用してローカルの .azure/config ファイルを Azure VM にコピーします。 FQDN セットがない場合は、VM の IP アドレスを使用することもできます。 Azure VM の管理者ユーザー名は azureuser です。 ファイルのターゲットは /home/azureuser/ ディレクトリです。 このコマンドの値を独自の値に置き換えます。

scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config

VM からディレクトリをダウンロードする

この例では、ログ ファイルが入ったディレクトリを VM からワークステーションにコピーします。 ログ ファイルには機微なデータや秘密のデータが含まれている場合があります。 ただし、SCP を使用することでログ ファイルのコンテンツが暗号化されます。 ログ ディレクトリに含まれる関連ファイルが多すぎて一度に 1 つずつコピーできないことがあります。このような状況ではディレクトリ全体をダウンロードすることをお勧めします。 SCP による転送を使用すれば、セキュリティで保護しながら、ログ ディレクトリやファイルをワークステーションに簡単に取得できます。

次のコマンドは、Azure VM の /home/azureuser/logs/ ディレクトリにあるファイルをローカルの /tmp ディレクトリにコピーします。

scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/

-r フラグを使用すると、コマンド内に列挙されたディレクトリのポイントから、ファイルやディレクトリを再帰的にコピーするように SCP に指示できます。 また、コマンドラインの構文は cp コピー コマンドの構文に似ています。

次のステップ