/home/
とは異なる$ HOMEディレクトリを持つユーザーがいます。
ユーザーのホームは/pkg/home
の下にあり、/pkg
の所有者は別のユーザーですが、すべてのユーザーは/pkg
へのグループアクセス権を持っています。ユーザーがフルパスの所有者ではないため、SSHDはauthorized_keys
(例:/pkg/home/usera/.sshd/authorized_keys
)へのアクセスを制限するようです。
sshd_config
がこの制限を変更するオプションはありますか?
/ pkg /の所有者は関係ありません。 usera
が所有する場合は、userb
などで問題が発生します。したがって、SSHDがauthorized_keys
ファイルを使用できないようにする何か他のものである必要があります。このファイルが書き込み可能かどうかを確認する必要がありますのみ所有者によって、および適切なユーザーによって所有されているかどうか。同じことがすべての親ディレクトリに適用されます。
それはすべてか無かです。StrictModes
オプションをオフにすると、sshdはファイルモードをチェックしません。グループ書き込み可能なディレクトリ(ユーザーがグループ内に一人でいる場合は問題ありません)など、特定の奇妙なケースが問題ないと言う方法はありません。
OpenSSHは、~/.ssh/authorized_keys
とそれに含まれるディレクトリの権限と所有権を上向きに繰り返しチェックします。ただし、ホームディレクトリに到達すると比較は停止します。たとえば、認証ファイルが/home/joe/.ssh/authorized_keys
で、/home/joe
がユーザーのホームディレクトリである従来の配置では、/home/joe/.ssh/authorized_keys
、/home/joe/.ssh
、および/home/joe
のみがチェックされます。
したがって、シナリオは非常に疑わしいものですが(/pkg
はrootが所有し、必要に応じて追加のグループ権限が必要です)、sshに影響を与えることはありません。
シンボリックリンクが含まれている場合、sshはチェックを開始する前にすべてのシンボリックリンクを展開することに注意してください。
システムログには関連情報が含まれている場合があります。ログインに失敗したためにログメッセージが表示されるかどうかを確認してください。
カスタムポート(sshd -d -p 2222
)でデバッグモードデーモンを実行して、ご使用のバージョンのsshが私のバージョン(OpenSSH 5.5p1のソースを調べた)と同じチェックを実行することを確認します。必要に応じてstrace -f -efile sshd -d -p 2222
を使用して、サーバーがチェックするファイルのアクセス許可を確認します。これらの権限チェックが問題ではない場合は、-d
フラグを追加すると光が当たる可能性があります。
AppArmorを使用している場合は、sshサーバーがユーザーの.ssh
ディレクトリ内のファイルの読み取りに制限されている可能性もあります。 AppArmorとホームディレクトリが標準外の場所にある場合は、AppArmorポリシーを更新する必要があります(SSHだけでなく)。 。Xauthorityを読み取れないため、Evinceは起動に失敗します を参照してください。
ユーザーディレクトリのベースディレクトリとして「/ data」を使用して、同じ問題が発生しました。私にとっては、「restorecon -R -v〜/.ssh」を実行するだけでは不十分でした。まず、走らなければなりませんでした
# semanage fcontext -a -e /home /data
ルートとして、次に(/ dataディレクトリにルート所有のディレクトリが含まれているのと同じようにルートとして)
# restorecon -R -v /data