sshd_configのchrootディレクティブはユーザーを除外できません。

sshd_configのchrootディレクティブはユーザーを除外できません。

Ubuntuでは、次の場所にSSHサーバー構成を設定しました/etc/ssh/sshd_config

Subsystem sftp internal-sftp

UsePAM yes
ChrootDirectory %h
ForceCommand internal-sftp
GatewayPorts no
AllowTcpForwarding no
KeepAlive yes
IgnoreUserKnownHosts no
Match group sftp

ただし、該当しないユーザーでもsftpchroot制限が適用されます。たとえば、bobby(ではなく)SSH経由でログインしようとすると、sftp次のエラーが発生します。

sshd [17977]:致命的:chrootディレクトリ '/home/bobby'の所有権またはモードが無効です。

私はこれを試しました:

Match group sftp, User !bobby

サービスを再起動しましたが、同じ問題が発生しました。

ベストアンサー1

Match group sftpグループにサポートしたい行の前になければなりません。このグループsftpの後にキーワードがないため、そのグループには何も適用されません!または、この場合、キーワードが一致するグループを指定していないため、キーワードはすべての人に適用されます。

から引用man sshd_config

Match   Introduces  a conditional block.  If all of the criteria on the
        Match line  are satisfied, the keywords on the following lines
        override those set  in the global section of the config file,
        until either another Match  line or the end of the file.  If a
        keyword appears in  multiple Match blocks that are satisified,
        only the first instance of the keyword is applied.

次のようにしてみてください。

Subsystem sftp internal-sftp

UsePAM yes

GatewayPorts no
AllowTcpForwarding no
KeepAlive yes
IgnoreUserKnownHosts no

Match group sftp
  ChrootDirectory %h
  ForceCommand internal-sftp

おすすめ記事