scp + sshで鍵ファイル認証でリモートサーバに転送する方法

"ssh -i 鍵ファイル" でログインできるリモートサーバに対して、scpでディレクトリまるごと送りつける方法
rsyncが使えないときでも、scpでこのようにできます。
$  scp  -i /home/foo/.ssh/keyfile  -r  /path/to/dir  username@example.com:/path/to/foo/
  • /home/foo/.ssh/keyfile  手元のローカルマシンにある鍵ファイル
  • /path/to/dir ローカルにあるディレクトリ
  • username@example.com リモートマシン上のユーザ名とホスト名
  • /path/to/foo/ リモートマシン上のディレクトリ
結果、リモートマシン上に/path/to/foo/dirというディレクトリが作成される。

このようにすればSSHのパスワードを聞かれずにコマンド実行できるので、スクリプトから実行するときにオススメです。

(リモートサーバ上のSSHの設定を適切にやっておく必要があります)

なお手元のマシンでrsyncとscpで計測時間を比較したら、rsyncの方が20%ほど速かったです。
カテゴリ:

人気記事