svn+sshでpost-commit hookにより、別サーバーのcheckoutディレクトリを自動更新しています。

(パスフレーズ無しの秘密鍵を作成してお互いに登録することにより、post-commitスクリプトによる自動更新を実現。)

セキュリティの観点から、レポジトリサーバーと、checkout先のサーバー間のSSH接続をパスフレーズ無しで
許可しない方が良いのではないかと思っているのですが、何か良い方法があれば教えて下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/01/19 15:50:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:pyopyopyo No.1

回答回数377ベストアンサー獲得回数98

ポイント60pt

post-commitスクリプト専用の鍵をつくる方法があります.

post-commitスクリプト以外はパスフレーズなしで起動できなくなるので,かなり安全になると思います.

具体的方法については,以下のページが参考になると思います.

http://sonic64.com/2004-11-17.html

ポイントとしては,

  • command="..." を使って post-commitスクリプト以外は実行できなくする
  • from="" を使って接続元を限定する
  • no-port-forwardingをつけ,ポートフォワードは禁止
  • no-X11-forwardingをつけ,X11の転送も禁止
  • no-agent-forwardingをつけ,ssh-agent の転送も禁止
  • no-pty も一応つけておく

と言ったところでしょうか.

手前味噌ですが,バックアップコマンド(rsync)だけはパスフレーズなしで起動できるようにする方法をhttp://d.hatena.ne.jp/pyopyopyo/20040923/p2 にまとめています.良ければ参考にしてください.

id:tomoyuki28jp

ご回答どうもありがとうございます。

この方法は既に知っており、いくつかのコマンドの自動実行には

この方法で実現しているのですが、

コマンドごとに鍵を作成すると管理が大変そうだなと思っていて

今回ご質問をさせて頂きました

やはりこの方法が安全で一番良いのでしょうか。

考慮してみます。

どうもありがとうございました。

2008/01/15 19:19:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません