解決策 1:
すべてのキー ファイルを同じディレクトリに集中させることができ、同じファイルに混在させることはできません。
sshd_config
を設定するだけです 次のようなファイル:
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
サーバー上:
- www-data キーは
/etc/ssh/authorized_keys/www-data
にあります - ルートキーは
/etc/ssh/authorized_keys/root
になります
アクセス権に関して、これらの設定は sshd によって受け入れられます:
/etc/ssh/authorized_keys
root:root
が所有しています キーファイルは root:root
が所有しています。 モードは 644 です。
他のモードも動作する可能性がありますが、テストしていません。
解決策 2:
一般的に言えば、私はあなたが提案していることをしません。一般的な仮定 (~/.ssh/authorized_keys
など) を破ります。 ユーザーのために機能し、質問で既に言及した問題を紹介します。実装前に明らかな問題が見られる場合は、ソリューションが理想的ではないことを意味します。
セキュリティに関しても、ひどいだと思います 全員がサービス アカウントを共有するというアイデア:今のところ、それはあなただけであり、変更を行っているのは自分だとわかっています。 5 人の管理者がいる 5 年間で、誰が何を変更したかを知りたいと思うようになり、監査ログを掘り下げて、誰がどのキーを使用したかを確認するのは王室の苦痛です。
ユーザーが自分でログインして sudo
を使用する方が良いでしょう または、権限をエスカレートして、必要なことを行うための同様の方法.
それでも SSH キーを一元化したい場合は、Puppet や radmind などの展開システムを調べて authorized_keys
を管理/配布することをお勧めします ファイルを適切な ~user/.ssh/
に ディレクトリを作成します (または、SCP を配置する自家製のソリューションをハックします)。
複数のサーバーに拡張する場合、古いバージョンの OpenSSH (または AuthorizedKeysCommand
ディレクティブと OpenSSH の新しいバージョンの適切なスクリプト) 同様に、ユーザーを一元化でき、ネットワーク全体にキーを配布する必要はありませんが、それはかなり先のことになる可能性があります。