カスタムユーザー$ HOMEにSSHキー認証を使用する

カスタムユーザー$ HOMEにSSHキー認証を使用する

$HOME ディレクトリが/home/

ユーザーのホームページは他のユーザーが探して所有しています/pkg/home/pkg、すべてのユーザーにグループアクセス権があります/pkg。 SSHDは、ユーザーがフルパスの所有者ではないためauthorized_keys(たとえば)へのアクセスを制限しているようです。/pkg/home/usera/.sshd/authorized_keys

sshd_configこの制限を変更するオプションはありますか?

答え1

すべてまたは専務:このStrictModesオプションをオフにすると、sshdはファイルモードを確認しません。グループ書き込み可能ディレクトリ(ユーザーがグループに一人でいる場合は大丈夫)など、いくつかの奇妙なケースが大丈夫だと言える方法はありません。

~/.ssh/authorized_keysOpenSSHは、含まれているディレクトリの権限と所有権を繰り返し確認します。ただし、ホームディレクトリに到達すると比較が停止します。たとえば、許可ファイルがユーザーのホームディレクトリである既存の配列では、合計のみが検証/home/joe/.ssh/authorized_keysされます。/home/joe/home/joe/.ssh/authorized_keys/home/joe/.ssh/home/joe

したがって、あなたのシナリオは非常に疑わしいが(/pkg必要に応じて別のグループ権限を持ってルートが所有しなければならない)、SSHに影響を与えてはいけません。

シンボリックリンクが含まれている場合、sshはスキャンを開始する前にすべてのシンボリックリンクを展開します。

システムログに関連情報が含まれている可能性があります。失敗したログイン試行によってログメッセージが表示されることを確認します。

カスタムポート()でデバッグモードデーモンを実行して、sshd -d -p 2222SSHバージョンが私のバージョンと同じチェックを実行していることを確認してください(OpenSSH 5.5p1のソースコードを見てみました)。strace -f -efile sshd -d -p 2222サーバーが権限を確認するファイルを確認する必要がある場合に使用します。これらの権限の確認が問題にならない場合は、さらに-dフラグを追加すると便利です。

.sshAppArmorがある場合は、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

関連情報