SSHアクセスをlocalhostに限定する方法は?

SSHアクセスをlocalhostに限定する方法は?

特定のユーザー(localhostを除く)に対してSSHアクセスを無効にする必要があります。

だから。ssh localhost動作する必要があります。ssh hostnameそのユーザーには外部からのアクセスが機能しないでください。

他のすべてのユーザーは通常どおり作業する必要があります。

答え1

AllowUsersDenyUsers参考にしてくださいsshd_configマニュアルページ(またすることができますとAllowGroupsDenyGroups

user@hostデフォルトでは、これらのディレクティブはスペースで区切られた形式でユーザーモードのリストを取得します。命令には、、DenyUsers最後にの優先順位があります。AllowUsersDenyGroupsAllowGroups

の特定のユーザーのみを許可する単純な場合は、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_configMatch

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 ホストなので許可されます。

関連情報