次のスタックを実行するようにクラウドサーバーを構成しています。Ruby、Passenger、Apache、 Ubuntu 10.04(Lucid Lynx)の下で。
サーバーを管理しやすくするプロセスで、RSAキーをroot
とwww-data
にセットアップして、サーバーにssh
できるようにします。私が気に入らなかったのは、www-data
の.ssh
ディレクトリがApacheのデフォルトのディレクトリ設定である/var/www
に置かれていたことです。私の心配は、Apacheが適切に設定されていない場合、.ssh
ディレクトリが公開される可能性があることです。
~/.ssh/authorized_keys
のAuthorizedKeysFile
を変更して、/etc/ssh/sshd_config
ファイルを中央の場所に移動するソリューションに出会いました。これには2つの長所があります。鍵を1か所で保管し、Apacheの設定が悪いことを心配する必要がありません。私が思いつくことができる唯一の欠点は、すべてのユーザーがサーバーにログインできるようになったことです(明らかに中央の鍵ファイルの両刃の剣です)。
この構成で見逃したものはありますか?自分を過剰に公開しましたか、またはこれは個々のauthorized_keys
ファイルよりも優れたソリューションですか?
私はサーバー管理に関してはgreenですが、悪いことをするために悪い名前と呼ばれる準備ができています。 :D
すべてのキーファイルを同じディレクトリに集中化し、同じファイルに混在させることはできません。
次のようにsshd_config
ファイルを設定するだけです。
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
サーバー上:
/etc/ssh/authorized_keys/www-data
にあります/etc/ssh/authorized_keys/root
にありますアクセス権に関して、これらの設定はsshdによって受け入れられます:
/etc/ssh/authorized_keys
はroot:root
が所有し、モード755を持っています。キーファイルはroot:root
が所有し、モード644を持っています。
他のモードも機能する可能性がありますが、テストしていません。
一般的に言えば、私はあなたが示唆していることをしません。これは一般的な仮定(ユーザーにとって~/.ssh/authorized_keys
が機能するなど)に違反し、質問ですでに述べた問題を引き起こします。実装前に明白な問題が見られる場合、それはソリューションが理想的ではないことを意味します。
セキュリティの観点からも[〜#〜]ひどい[〜#〜]アイデアだと思いますすべての人にサービスアカウントを共有してもらいます。今のところはあなただけです。あなたが変更を加えているのはあなたです。 5年間で5人の管理者がいる場合、誰が何を変更したかを知り、監査ログを調べて、誰がどのキーをいつ使用したかを確認する必要があります。
自分でログインし、Sudo
または同様のものを使用して特権を昇格させ、必要なことをすべて実行する方がよいでしょう。
それでもSSHキーを一元化したい場合は、 Puppet または radmind のようなデプロイメントシステムを調べてください/ authorized_keys
ファイルを適切な~user/.ssh/
ディレクトリに配布します(またはSCPがそれらを所定の場所に配置する自家製のソリューションをハックアップします)。
複数のサーバーに展開する際に、古いバージョンのOpenSSHの LDAP公開鍵パッチ (または AuthorizedKeysCommand
ディレクティブ およびOpenSSHの新しいバージョンの適切なスクリプト)を使用して、ユーザーを一元化でき、ネットワーク全体にキーを配布する必要はありませんが、そうなる可能性がありますかなり遠くまで行ってください。