Linuxサーバーをリモートから管理/操作する方法としてSSHを利用している場合、Linuxサーバー(SSHサーバー)とファイルを送受信するならscpコマンドが便利です。
そこでここでは、LinuxのSSHサーバーとWindowsのSSHクライアントの間で、scpコマンドを使ってファイルを送受信する方法を紹介します。
目次
scpコマンドの書式
scpコマンドは、SSHサーバー(リモートマシン)とSSHクライアント(ローカルマシン)の間でファイルを安全に転送するためのツールで、SSHクライアント上で実行します。
scpコマンドの基本的な書式は次のとおりで、ローカルマシン上のファイルをリモートマシンに転送したり、逆にリモートマシン上のファイルをローカルマシンに転送することができます。
> scp [送信元] [送信先]
scpコマンドの使用例
ファイルを転送する
ローカルマシン上のファイル「testfile.txt」を、リモートマシン「remote-server」に「user01」というユーザーで接続して、ディレクトリ「/home/user01」に転送したいときは、次のようにコマンドを実行します。
> scp testfile.txt user01@remote-server:/home/user01
逆に、リモートマシン「remote-server」上のファイル「/home/user01/testfile.txt」を、ローカルマシンのフォルダー「E:\test」に転送したいときは、次のようにコマンドを実行します。
> scp user01@remote-server:/home/user01/testfile.txt E:\test
複数のファイルを転送する
複数のファイルを転送したいときは、送りたいファイルをスペースで区切って指定したり、ワイルドカード「*」を使って指定することができます。
> scp testfile.txt testfile2.txt user01@remote-server:/home/user01
> scp *.txt user01@remote-server:/home/user01
フォルダーを転送する
フォルダーとフォルダー内のファイルをまるごと転送したいときは、-rオプションを付加して実行します。
$ scp -r dir1 user01@remote-server:/home/user01
あとがき
なお、scpコマンドでSSHサーバー(リモートマシン)に接続する際は認証が必要になるため、スクリプトなどで自動的に認証してファイル転送したいような場合は、SSHサーバーに鍵認証で接続できるよう設定しておくとよいでしょう。