頑張る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 User
。Match 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/config
SSH設定用でもあります。顧客つまり、SSH接続を確立したときに発生することを修正します。外のそのシステム。ユーザーの制限はサーバー上で行う必要があり、記録が存在するsshd_config
唯一の場所です。ForceCommand
また、あなたが言うようにInclude
クライアント構成にのみ存在するので、a)適切なコマンドを使用してコンピュータに入れるか、ForceCommand
b)どこにでも置かないことをお勧めします。sshd_config
Match
ForceCommand
もちろん、いくつかの外部システムを使用してさまざまなファイルから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
。