mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages
※2018年9月15日より非力な環境でサーバを運用しているため、各ページの表示に時間がかかる場合があります。ご了承ください。(改良の予定あり)

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - root での SSH 接続が制限されているリモートへの rsync 同期方法!

[ サーバ構築 ] [ Linux, rsync ]

こんばんは。

リモート側で root での SSH 接続が制限されている場合、通常、ローカル側から一般ユーザで rsync コマンドで同期することができません。

以下、解決方法についての記録です。

0. 前提条件

  • リモート側は Debian GNU/Linux 9.5 を想定。
  • ローカル側は LMDE 3 (Linux Mint Debian Edition 3; 64bit) を想定。
  • リモート側 SSH 用ポートは、デフォルトの 22 から 9999 に変更している。
  • 当然、ローカル側からリモート側へ一般ユーザで SSH 接続できる状況にあること。(以下では、一般ユーザ名 “foo” を想定)

1. sudo の設定(リモート側)

リモート側で sudo でパスワード無しで rsync コマンドが使用できるよう設定する。

visudo
1
foo  ALL=(ALL)  NOPASSWD:/usr/bin/rsync

2. rsync の実行(ローカル側)

1
rsync -auv --delete -e "ssh -p 9999" --rsync-path="sudo rsync" /path/to/bar foo@<SERVER_NAME>:/path/to/

ちなみに、同期元のユーザ/グループを同期先で変更させたい場合、以下のようなオプションを追加すればよい。(ユーザ/グループ hoge:fuganobody:nogroup に変更する例)

1
--usermap=hoge:nobody --groupmap=fuga:nogroup

以上。

Comments