ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 でのリモートシステムの管理 Oracle Solaris 11.1 Information Library (日本語) |
/etc/ssh_known_hosts および .ssh/known_hosts ファイル
リモートシステムからのログアウト (exit または logout)
ファイルをコピーするためのリモートシステムへのログイン (sftp)
scp コマンドは、ローカルシステムとリモートシステム間、または 2 台のリモートシステム間でファイルやディレクトリをコピーします。このコマンドは、リモートシステムから (ssh コマンドでログイン後に)、またはローカルシステムから使用できます。scp コマンドはデータ転送に ssh を使用します。したがって、scp コマンドでは同じ認証が使用され、ssh コマンドと同じセキュリティーが提供されます。
scp を使用すると、次のリモートコピー操作を実行できます。
ローカルシステムからリモートシステムにファイルやディレクトリをコピーする
リモートシステムからローカルシステムにファイルやディレクトリをコピーする
ローカルシステムを経由したリモートシステム間でファイルやディレクトリをコピーする
システム間でファイルやディレクトリをコピーするには、ログインしてファイルをコピーする許可を持っていなければなりません。
ssh コマンドのコンポーネントである scp コマンドでは、ユーザーがコピー先システムのユーザーアカウントまたはホスト鍵アクセスのいずれかを持っていることが必要です。詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の第 15 章「Secure Shell の使用」を調べてください。
注意 - cp コマンドと scp コマンドは両方とも、警告を出さずにファイルが上書きされることがあります。コマンドを実行する前に、ファイル名が正しいかどうかを確認してください。 |
scp コマンドでは、ソース (コピー元のファイルまたはディレクトリ) およびターゲット (ファイルまたはディレクトリのコピー先の場所) を指定できます。チルド文字 (~) およびシェルワイルドカード文字 (*、? など) を使用するとパス文字列を短縮できます。
チルド文字 (~) はすべてのシェルプログラムによって展開され、現在のユーザーのホームディレクトリになります。現在のユーザーは、シェルを実行中のユーザーです。ユーザー jack のホームディレクトリが /export/home/jack の場合、ユーザー jack については、~/myfile.txt は /export/home/jack/myfile.txt と展開されます。
この展開は、リモートパスについても機能します。ユーザー jack が自分のホームディレクトリからファイルをコピーする場合、これらの 3 つのパス記述は同等です。
mars:/export/home/jack/myfile.txt
mars:~/myfile.txt
mars:myfile.txt
この展開は、別のユーザーのリモートホームディレクトリを参照する際にも便利です。この場合、ユーザー名をチルド文字の後に含めます。ユーザー jack にとって、mars:~jill/myfile.txt は mars:/export/home/jill/myfile.txt と同じですが、入力が短くなります。
scp コマンドでは認証が必要です。使用する認証方式によって、コピー先システム上のアカウントか、コピー先システム上の承認済み公開鍵のいずれかを持つ必要があります。少なくとも、コピー元システム上で読み取り権を持ち、コピー先システム上で書き込み権を持っているべきです。
注意 - コピー先システムにアカウントがない場合や、コピー先システムが公開鍵を許可するように構成されていない場合、認証エラーを受け取ります。例: $ scp mars:/var/tmp/testdir/letter.txt . Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive) ユーザーアカウントまたは公開鍵アクセスが、コピー先システム上で認証用に構成されていることを確認します。『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「Secure Shell 認証」を参照してください。 |
コピー元またはコピー先のパスがわからない場合は、「リモートシステムへのログイン (ssh)」で説明されているように、まず ssh コマンドを使用してリモートシステムにログインできます。次に、そのパスが見つかるまでリモートシステム上を移動します。その後は、リモートシステムからログアウトせずに次の手順を実行できます。
$ scp [-r] [[user1@]hostname1:]file1 ... [[user2@]hostname2:]file2
ディレクトリ全体を再帰的にコピーする際に使用します。
リモートホスト上で使用するログインアカウント。
ファイルのコピー元またはコピー先となるリモートホストの名前。
コピーされるファイル名またはディレクトリ名。1 つのコマンド行に複数のソースファイル名を含めることができます。
宛先のファイル名またはディレクトリ名。
例 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 コマンドを使用してローカルファイルをリモートシステムにコピーする
次の例で、scp はファイル notice.doc をローカルシステム earth のホームディレクトリ (/home/smith) からリモートシステム pluto の /home/jones ディレクトリにコピーします。
$ 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