通常の一番下には以下があります。/etc/ssh/sshd_config
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp
# Personal settings
AllowUsers user1
AllowGroups user1
PermitRootLogin no
このファイルには他のエントリはなく、AllowUsers
少なくともこのディレクトリには他のsshd設定はありません/etc/ssh
。
それでもuser2
SSH経由でログインすることは可能です。私完全に再起動しましたコンピュータ。
SSHに属していないすべてのユーザーにSSHを拒否しないでくださいAllowUsers
。何を試すことができますか?
id user2
返品:
uid=1002(user2) gid=1002(user2) groups=1002(user2),115(nopasswdlogin),999(docker)
ベストアンサー1
設定ファイルのドキュメント(参考資料を参照man sshd_config
)では、Match
これらのブロックについて説明します(強調表示)。
Match
条件付きブロックを導入します。次の行のキーワードは、その行のすべての条件が満たされると、設定ファイルのグローバルセクションMatch
で設定されたキーワードよりも優先されます。一致する他の行またはファイルの終わりまで。
それも言う、
キーワード次の行にはキーワードサブセットのみを使用できます
Match
。利用可能なキーワードは[...]AllowGroups
、[...]AllowUsers
、[...]PermitRootLogin
、[...]です。
したがって、ブロックが適用されている間のみ、AllowGroups
およびAllowUsers
キーワードが適用されます。あなたが書いたように:PermitRootLogin
Match Group sftpg
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp
AllowUsers user1
AllowGroups user1
PermitRootLogin no
解決策は、グローバル設定をMatch
最初のブロックの上に移動して、どこにでも適用できるようにすることです。