基本的な書き方
<ローカルマシンからリモートホストにコピー>
scp ローカルファイル ユーザ名@リモートホスト名:パスとなる。
<リモートホストからローカルマシンにコピー>
scp ユーザ名@リモートホスト名:ファイルパス ローカルマシンのコピー先
よく使うオプション
p |
権限まわりを維持してコピー |
r |
ディレクトリを再帰的にコピー |
C |
圧縮してコピー |
踏み台を経由してコピーする場合(ローカルマシン=>踏み台マシン=>接続したいマシン等)
ProxyCommandを使うことで実現できる。
scp -o 'ProxyCommand ssh 踏み台ユーザ名@踏み台アドレス -i ~/.ssh/踏み台の秘密鍵 -W %h:%p' -i ~/.ssh/踏み台に置いてある接続先マシンにつなぐための秘密鍵 ローカルマシンのファイル 接続先マシンのユーザ名@接続先マシンアドレス:/パス
よく使う接続先であれば、~/.ssh/configを下記のように設定しておこう。
Host 踏み台サーバのホスト
HostName 踏み台サーバのIPアドレス
Host 接続先ホスト
HostName 接続先ホストのIPアドレス
ProxyCommand ssh 踏み台サーバのホスト -W %h:%p
※sshがWオプションに対応するより昔はnetcat(nc)を使ったらしい。
注意事項
大容量ファイルを扱う場合は途中で失敗してしまうケースがある。
rsyncコマンド等を検討しよう。
最終更新:2019年04月06日 22:00