ユーザー固有の設定ファイルに `ForceCommand`を置きます。

ユーザー固有の設定ファイルに `ForceCommand`を置きます。

頑張るSSHトンネルユーザー制限

# sudo cat /home/user/.ssh/config
Banner none
ChrootDirectory /home/%u
PasswordAuthentication no
AllowTcpForwarding yes
X11Forwarding no
AllowAgentForwarding no
ForceCommand /bin/false

しかし、これらのどれも効果がないようです。

/home/user/.ssh/authorized_keys前に追加するとうまくno-pty,no-agent-forwarding,no-X11-forwarding,command="/bin/false"いきますが、これらのディレクティブを永続構成に含めたいと思います。

更新せずにこのようにユーザーを制限できますか/etc/ssh/sshd_config

修正する私も知っていますMatch UserMatch Groupポイントはそれを置くことです。ユーザー別構成。

答え1

/home/user/.ssh/configこれは純粋にSSHクライアント自体のためのものであり、システムで使用されます。始めるSSH接続。だからここでは役に立たない。

ユーザー固有の設定が必要なため、追加Match UserまたはMatch Groupアイテムの可能性を排除したという質問が更新されました。/etc/ssh/sshd_config

特定のユーザーを自分のホームディレクトリにルート指定するには、特におよびをMatch Group使用してこれらのグループメンバーシップを利用できますChrootDirectory %h

Match Group jailed
  Banner none
  ChrootDirectory %h
  PasswordAuthentication no
  AllowTcpForwarding yes
  X11Forwarding no
  AllowAgentForwarding no
  ForceCommand /bin/false

答え2

# sudo cat /home/user/.ssh/config

アップデートのMatch User中心Match Groupは、ユーザー固有の設定に入れることです。

これにより、ForceCommandユーザーができることを制限できます。これは、ユーザーのホームディレクトリにある設定ファイルでは正しく機能しません。なぜなら、設定を変更したり、少なくともアクセスできないようにすることができるからですmv ~/.ssh ~/.ssh_disabled

もちろん.ssh/configSSH設定用でもあります。顧客つまり、SSH接続を確立したときに発生することを修正します。外のそのシステム。ユーザーの制限はサーバー上で行う必要があり、記録が存在するsshd_config唯一の場所です。ForceCommandまた、あなたが言うようにIncludeクライアント構成にのみ存在するので、a)適切なコマンドを使用してコンピュータに入れるか、ForceCommandb)どこにでも置かないことをお勧めします。sshd_configMatchForceCommand

もちろん、いくつかの外部システムを使用してさまざまなファイルからSSHサーバー構成を配置することができますが、その中で最も簡単なことは cat /etc/ssh/sshd_config.d/*.conf > /etc/ssh/sshd_config

答え3

私の心に最初に浮かぶのは次のとおりです。Include指示する

しかしそれは内部でのみ動作/etc/ssh/ssh_config(sshをクライアントに)、呼び出し時に/etc/ssh/sshd_config(sshをサーバーに)、「を投げる。無効な設定オプション:含めるエラー - 明らかに、クライアントに対してのみ実装されます。

問題は、私が必要とするディレクティブ(たとえばForceCommand)がサーバー側のためであるため、追加するときに無視されることですssh_config

関連情報