私のユースケースは、ウェブマスター用の共有アカウント(ドメインという名前)を持つことですが、1つのウェブマスターだけが基本データの「所有者」であり、認証キーを編集して共有アカウントにログインできる人を定義します。
問題は、StrictModes yes
「所有者」ユーザーが所有している共有アカウントの.ssh / authorized_keysの所有権について文句を言うことです。
私は現在持っていますが、StrictModes yes
AuthorizedKeysCommandを使用してsshdが.ssh / authorized_keysと連携し、不適切な所有権について不平を言うことはありません。
より良い点は何ですか?無効にStrictModes
するか、回避策がありますか?
共有アカウントに一致する項目は次のとおりです。
Match Group *,!sftpuser,!sshuser
ChrootDirectory %h # eg: /sites/<domain> # symlink to real dir in /sites/users/<user>/www/<domain>
ForceCommand internal-sftp -u 0002 -d / -l INFO # here $HOME from /etc/passwd is broken, thus '-d /'
# workaround - using script to validate ssh keys because 'StrictModes yes'
# and we want authorized_key be owner by different user
AuthorizedKeysCommand /etc/ssh/authorized_keys/bin/authorize_domain_sshkey %u
AuthorizedKeysCommandUser %u
ディレクトリのレイアウトは次のとおりです。
/sites/users/<owner>/home/<owner> - owned by <owner>
/sites/users/<owner>/www/<domain>/.ssh - owned by <root>
/sites/users/<owner>/www/<domain>/.ssh/authorized_keys - owned by <owner>
/sites/users/<owner>/www/<domain>/htdocs - owned by <owner>/<domain>
共有アカウントにはrwXがあるため、「htdocs」のデータを変更できます。
これで、次のように動作します。
- $ownerは新しい公開SSHキーを自分の$HOME/../../www//.ssh/authorized_keysに入れます。
- sftp$ドメイン@ホスト
- $domain は上記の /sites/users/$owner/www/$domain に対応するディレクトリにルートが指定されます。