指定されたユーザーのsshアクセス(localhostを除く)を禁止する必要があります。
そう。 ssh localhost
は機能するはずです。 ssh hostname
外部からはそのユーザーには機能しないはずです。
他のすべてのユーザーは通常どおりに作業する必要があります。
sshd_config
のマニュアルページ のAllowUsers
およびDenyUsers
ディレクティブを参照してください(場合によってはAllowGroups
およびDenyGroups
) 。
基本的に、これらのディレクティブは、スペースで区切られたuser@Host
形式のユーザーパターンのリストを取ります。ディレクティブの優先順位は、DenyUsers
、AllowUsers
、DenyGroups
、最後にAllowGroups
です。
localhost
から特定のユーザーを許可するという単純なケースでは、次の行のみを追加する必要があります。
AllowUsers user@localhost
これにより、user@localhost
以外の場所からのユーザーが暗黙的に拒否されます。
特定のユーザーに公開鍵認証を強制し、許可された鍵ファイルのfrom=
オプションを使用してそのユーザーの公開鍵を制限する場合はどうでしょうか。
特定のユーザーに公開鍵認証の使用を強制するには:
Match User Bad_User
PasswordAuthentication no
AuthorizedKeysFile /somewhere/the/user/cannot/touch
次に、承認されたキーファイルで、次のようにキーを構成します。
from=localhost ssh-rsa AAAA...
man sshd_config
のMatch
ディレクティブ、およびman sshd
の許可されたキーオプションの詳細を読むことができます。
PAM(sshd_configのUsePAM)を使用して追加できます
account required pam_access.so
sshのPAM構成に。
次に、/etc/security/access.conf
でアクセスポリシーを定義できます。
+ : john : 127.0.0.1 ::1
- : john : ALL
+ : ALL : ALL
(未テスト)