LinuxとWindowsの間でscpコマンドでファイル転送する方法

LinuxとWindowsの間でscpコマンドでファイル転送する方法

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サーバーに鍵認証で接続できるよう設定しておくとよいでしょう。