Oracle® Solaris 11.2 でのリモートシステムの管理

印刷ビューの終了

更新: 2014 年 7 月
 
 

ファイルを 2 つのシステム間でコピーする方法 (scp)

  1. ターゲットシステム上でファイルをコピーするためのアクセス権を持っていることを確認します。

    scp コマンドでは認証が必要です。使用する認証方式によって、コピー先システム上のアカウントか、コピー先システム上の承認済み公開鍵のいずれかを持つ必要があります。少なくとも、コピー元システム上で読み取り権を持ち、コピー先システム上で書き込み権を持っているべきです。


    Caution

    注意  -  コピー先システムにアカウントがない場合や、コピー先システムが公開鍵を許可するように構成されていない場合、認証エラーを受け取ります。例:

    $ scp mars:/var/tmp/testdir/letter.txt .
    Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive)
    ユーザーアカウントまたは公開鍵アクセスが、コピー先システム上で認証用に構成されていることを確認します。Oracle Solaris 11.2 での Secure Shell アクセスの管理 のSecure Shell 認証を参照してください。


  2. コピー元とコピー先の場所を決定します。

    ソースまたはターゲットのパスがわからない場合は、Secure Shell を使用したリモートシステムへのアクセスで説明されているように、まず ssh コマンドを使用してリモートシステムにログインできます。次に、そのパスが見つかるまでリモートシステム上を移動します。その後は、リモートシステムからログアウトせずに次の手順を実行できます。

  3. ファイルまたはディレクトリをコピーします。
    $ scp [-r] [[user1@]hostname1:]file1 ... [[user2@]hostname2:]file2
    -r

    ディレクトリ全体を再帰的にコピーする際に使用します。

    user1, user2

    リモートホスト上で使用するログインアカウント。

    hostname1, hostname2

    ファイルのコピー元またはコピー先となるリモートホストの名前。

    file1

    コピーされるファイル名またはディレクトリ名。1 つのコマンド行に複数のソースファイル名を含めることができます。

    file2

    宛先のファイル名またはディレクトリ名。

使用例 3-5  scp コマンドを使用してリモートファイルをローカルシステムにコピーする

この例では、scp を使用して、リモートシステム pluto/home/jones ディレクトリからローカルシステムの作業用ディレクトリにファイル letter.doc をコピーします。

$ scp pluto:/home/jones/letter.doc .
The authenticity of host 'pluto (192.168.56.102)' can't be established.
RSA key fingerprint is b4:88:7b:cf:f5:23:d3:ad:0b:14:22:31:74:7b:6c:74.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.102' (RSA) to the list of known hosts.
Password:
letter.txt           100% |*****************************|    23       00:00   
$ 

この例では、システム pluto にはじめてアクセスするため、RSA 鍵フィンガープリントメッセージが示されます。

ここで、コマンド行の末尾にある「.」記号は、ローカルシステム上の現在の作業用ディレクトリを参照します。

使用例 3-6  scp コマンドを使用してローカルファイルをリモートシステムにコピーする

この例では、ファイル notice.doc をローカルシステム earth のホームディレクトリ (/home/smith) からリモートシステム pluto/home/jones ディレクトリにコピーするため、scp が使用されます。

$ scp notice.doc pluto:/home/jones
Password:
notice.doc           100% |*****************************|     0       00:00    

リモートファイル名が指定されていないので、ファイル notice.doc/home/jones ディレクトリに同じ名前でコピーされます。

次の例では、前の例の scp 操作が繰り返されますが、scp はローカルシステム上の別の作業用ディレクトリから実行されます (/tmp)。現在のユーザーのホームディレクトリを指すために「~」記号が使われているので注意してください。

$ scp ~/notice.doc pluto:/home/jones
Password:
notice.doc            100% |*****************************|     0       00:00