$HOME ディレクトリが/home/
。
ユーザーのホームページは他のユーザーが探して所有しています/pkg/home
が/pkg
、すべてのユーザーにグループアクセス権があります/pkg
。 SSHDは、ユーザーがフルパスの所有者ではないためauthorized_keys
(たとえば)へのアクセスを制限しているようです。/pkg/home/usera/.sshd/authorized_keys
sshd_config
この制限を変更するオプションはありますか?
答え1
すべてまたは専務:このStrictModes
オプションをオフにすると、sshdはファイルモードを確認しません。グループ書き込み可能ディレクトリ(ユーザーがグループに一人でいる場合は大丈夫)など、いくつかの奇妙なケースが大丈夫だと言える方法はありません。
~/.ssh/authorized_keys
OpenSSHは、含まれているディレクトリの権限と所有権を繰り返し確認します。ただし、ホームディレクトリに到達すると比較が停止します。たとえば、許可ファイルがユーザーのホームディレクトリである既存の配列では、合計のみが検証/home/joe/.ssh/authorized_keys
されます。/home/joe
/home/joe/.ssh/authorized_keys
/home/joe/.ssh
/home/joe
したがって、あなたのシナリオは非常に疑わしいが(/pkg
必要に応じて別のグループ権限を持ってルートが所有しなければならない)、SSHに影響を与えてはいけません。
シンボリックリンクが含まれている場合、sshはスキャンを開始する前にすべてのシンボリックリンクを展開します。
システムログに関連情報が含まれている可能性があります。失敗したログイン試行によってログメッセージが表示されることを確認します。
カスタムポート()でデバッグモードデーモンを実行して、sshd -d -p 2222
SSHバージョンが私のバージョンと同じチェックを実行していることを確認してください(OpenSSH 5.5p1のソースコードを見てみました)。strace -f -efile sshd -d -p 2222
サーバーが権限を確認するファイルを確認する必要がある場合に使用します。これらの権限の確認が問題にならない場合は、さらに-d
フラグを追加すると便利です。
.ssh
AppArmorがある場合は、SSHサーバーがユーザーファイルディレクトリ内のファイルを読み取らないように制限することもできます。 AppArmorとホームディレクトリが非標準の場所にある場合は、SSHだけでなくAppArmorポリシーも更新する必要があります。バラより.Xauthorityを読み取れないため、Evinceを起動できません。。
答え2
/pkg/の所有者が誰であるかは問題ではありません。所有すると問題などがusera
発生します。したがって、SSHDがファイルをuserb
使用できないようにする他の要因が必要です。authorized_keys
ファイルが書き込み可能であることを確認する必要がありますただ所有者によって、およびそのユーザーが所有している場合。すべての親ディレクトリにも同様に適用されます。
答え3
「/data」をユーザーディレクトリのベースディレクトリとして使用すると、同じ問題が発生しました。私にとっては、「restorecon -R -v ~/.ssh」を実行するだけでは十分ではありませんでした。まず走らなければならない
# semanage fcontext -a -e /home /data
その後、root(またrootとして、/ dataディレクトリにはrootが所有するディレクトリが含まれているので)
# restorecon -R -v /data
答え4
他の答えに加えて、sshdログを確認し、フォルダとファイルに対する正しい権限を設定してください。
$ chown usera /pkg/home/usera
$ chmod go-w /pkg/home/usera
$ chmod 700 /pkg/home/usera/.ssh
$ chmod 600 /pkg/home/usera/.ssh/authorized_keys