IT pass HikiWiki - [Memo2011][ITPASS]ika -> tako の rsync でのエラーへの対応 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

ika -> tako の rsync で生じていたエラーについて 2011/05/02 に調査・対処を行った.

* 作業者 : 河合, 佐伯
* ロガー : 佐伯

[((<[ITPASS]過去の構築ドキュメント>))へ戻る]

= 症状

2011/05/01, Cron Daemon から ika の root 宛に以下のようなメールが届いた.

  /etc/cron.local/daily/230_rsync_itpassbk:
  Permission denied (publickey).
  rsync: connection unexpectedly closed (0 bytes received so far) [sender]
  rsync error: unexplained error (code 255) at io.c(635) [sender=3.0.3]

ika -> tako の rsync でエラーが出ているようである. しかし, 直接スクリプトをたたいたところ, エラーが出ることなく実行された. 次に, cron から動かしてみたが, やはりエラーは出なかった.

= 対処

== 概要

ika の秘密鍵, tako の公開鍵を上書きした.

== 鍵の確認

ika の root の秘密鍵と tako の root の公開鍵とのペアが機能しているか確認した.

まず, tako の /etc/ssh/sshd_config の

  PermitRootLogin forced-commands-only

という部分をコメントアウトし

  # PermitRootLogin yes

という部分のコメントアウトを外したのち

  tako-itpass# /etc/init.d/ssh restart

として設定を反映させた. これにより, root ログインを許可することとなった.

次に

  ika-itpass# ssh 133.30.109.21

として tako に root ログインしようとすると

  Permission denied (publickey).

と表示されたので, 鍵のペアが機能していないと判断した.

一旦, tako の /etc/ssh/sshd_config の設定を元に戻し,
ika の秘密鍵, tako の公開鍵を上書きすることにした.

== ika 側での公開鍵作成

公開鍵を作成した.

  ika-itpass# ssh-keygen -t dsa

  (鍵はデフォルトの /root/.ssh/id_dsa とした)
  (パスフレーズは空にした)

== tako 側の鍵の設置

ika で作成した公開鍵 ika-itpass:/root/.ssh/id_dsa.pub を tako-itpass:/root/.ssh/authorized_keys の最後尾に追記した.
追記する際には cat コマンドを用いた.

しかし, このままでは ika で root を取られると tako もそのまま乗っ取られることが考えられるため, 公開鍵認証の際にはバックアップ以外の動作をできないよう, また ITPASS ドメイン以外からのアクセスを受け付けないよう制限をかけなければならない. そのために, 上記で設置した authorized_keys 内の tako の authorized_keys に先ほど追記した公開鍵の行の冒頭に以下を加えた. なお, 見易さのため改行してあるが,
一行で書いた, またカンマの前後に空白は開けなかった.
そして, 最後の "no-agent-forwarding" と公開鍵の冒頭に書いてある
"ssh-dss" の間には空白を一文字入れた.

  command="rsync --server -vlogDtpr --delete . /home/",no-pty,
  from="ika-itpass.scitec.kobe-u.ac.jp",no-port-forwarding,
  no-X11-forwarding,no-agent-forwarding

== 再び鍵の確認

ika の root の秘密鍵と tako の root の公開鍵とのペアが機能するようになったか確認した.
上記と同様にして tako に root ログインしようとすると,
無事ログインできたので, 鍵のペアが機能するようになったことが確認できた.

== スクリプトの動作確認

再び tako の /etc/ssh/sshd_config の設定を元に戻し,

  /etc/cron.local/daily/230_rsync_itpassbk

を実行すると,

  Permission denied (publickey).

とは表示されず, 適切に動いた.

翌日もエラーメールは届かなかった.