特定のユーザー(localhostを除く)に対してSSHアクセスを無効にする必要があります。
だから。ssh localhost
動作する必要があります。ssh hostname
そのユーザーには外部からのアクセスが機能しないでください。
他のすべてのユーザーは通常どおり作業する必要があります。
答え1
AllowUsers
DenyUsers
参考にしてくださいsshd_config
マニュアルページ(またすることができますとAllowGroups
)DenyGroups
。
user@host
デフォルトでは、これらのディレクティブはスペースで区切られた形式でユーザーモードのリストを取得します。命令には、、DenyUsers
最後にの優先順位があります。AllowUsers
DenyGroups
AllowGroups
の特定のユーザーのみを許可する単純な場合は、localhost
次の行を追加するだけです。
AllowUsers user@localhost
これは、要求されていないすべての要求を暗黙的に拒否しますuser@localhost
。
答え2
特定のユーザーに公開鍵認証を強制し、認証鍵ファイルのオプションを使用して公開鍵を制限するとfrom=
どうなりますか?
特定のユーザーに公開鍵認証を使用させるには、次の手順を実行します。
Match User Bad_User
PasswordAuthentication no
AuthorizedKeysFile /somewhere/the/user/cannot/touch
次に、認証キーファイルで、そのキーを次のように設定します。
from=localhost ssh-rsa AAAA...
Match
のディレクティブman sshd_config
と認証キーオプションの詳細を読むことができますman sshd
。
答え3
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
(テストされていません)
答え4
このユーザーへのTCP転送を制限するには、次の規則を使用してファイル(sshd_config
通常は場所)でそれを構成することもできます。/etc/ssh/sshd_config
Match
Match User <username>
AllowTcpForwarding no
Match User <username> Address *,!127.0.0.1,!::1
ForceCommand /bin/false
これにより、指定されたユーザー名を持つユーザーがSSHを介してログインするたびにローカルホスト(IPアドレス127.0.01や::1など)でない場合、システムが実行され、便利なエントリを実行するのではなく/bin/false
エラーコードが返されます。 。地獄。
〜のようにルディ・メイヤー 指摘-N
、ユーザーが最初のSSH接続を開き、ポートをlocalhostに渡し、コマンド(OpenSSHのパラメータを使用するなど-L
)を実行しないで、そのトンネルを介して後続のSSH接続を開くことを防ぐには、ポート転送を無効にする必要があります。 localhost ホストなので許可されます。