scpコマンドでローカル・リモート間のファイルコピー
使うとき、たまに忘れる。
ローカルファイルをリモートへコピー
カレントディレクトリの foo.txt
をリモートへコピーする。
-P
オプションでポートを指定。
リモートの指定は ユーザー名@ホスト名(もしくはIPアドレス):コピー先ディレクトリ
。
$ scp -P 22 ./foo.txt username@192.168.x.x:~/path/to/dir/
リモートファイルをローカルへコピー
リモートの ~/path/to/dir/
にある piyo.txt
ファイルをローカルのカレントディレクトリにコピーする。
$ scp -P 22 username@192.168.x.x:~/path/to/dir/piyo.txt ./
ディレクトリをコピーしたい
-r
オプションをつけることでディレクトリをコピーすることも可能。
ローカルからリモート。
$ scp -r ./hoge_dir username@192.168.x.x:~/path/to
リモートからローカル。
$ scp -r username@192.168.x.x:~/path/to/hoge ~/
SSH鍵を指定して接続
-i
オプションを使うことで鍵を指定して接続できる。
$ scp -i path/to/keyfile ./foo.txt username@192.168.x.x:~/path/to/dir/
ssh configを指定して接続
configに設定している接続名を使えばいいだけ。
Host piyopiyo HostName 192.168.x.x Port 22 User username
このようなconfigがある場合は以下のようにすればいい。
$ scp ./foo.txt piyopiyo:~/path/to/dir/