現在サーバーにSSHで接続できますが、それを介してのみプロキシできるユーザーグループを設定しようとしています。ファイルを表示したり、コマンドを実行したりすることはできません。このグループのユーザーは、キーの代わりにパスワード認証を使用することもできます。 SSHサーバーはOpenSSHです。
これは同様の問題を解決する別の質問良い答えがあります。私は彼が意味するものをよく理解することができません。特に、ユーザーはサーバーをプロキシとして使用できないため、指示に盲目的に従うことはできないと述べています。また、グループと比較して個人ユーザーのために書かれています。この問題を解決するために、設定を次のように変更しましたsshd_config
。
Match Group limited-users
AllowTcpForwarding yes
#X11Forwarding no
#PermitTunnel no
#GatewayPorts no
AllowAgentForwarding no
PermitOpen localhost:1080
ForceCommand echo 'This account can only be used for [reason]'
特定のタイプのシステムグループを作成する必要があるかもしれませんが、わかりません。
私が見逃したようなロックされたアカウントを作成するための好ましい方法はありますか?
編集:私StackOverflowで、この質問によく似た2番目の質問を見つけました。しかし、私はキーの代わりにパスワードを使用したいので、彼らは再びキーを使用します。
編集2:これは非常に人気があることが証明されています。これが最も役に立ちます。単に任意のキーを押してログアウトするようにユーザーシェルを設定するだけで、ユーザーは何もできません。
編集3:細心の注意を払うときこの記事他の質問の1つが提供したように、次のような結果が得られましたが、これはほとんど同じですが、2つの別々のグループはありません。
そうであれば更新します。
/usr/bin/tunnel_shell
ファイルを生成して入れて全く役に立たないようなシェルを作りました。
#!/bin/bash
trap '' 2 20 24
clear
echo -e "rn33[32mSSH tunnel started, shell disabled by the system administrator"
while [ true ] ; do
sleep 1000
done
exit 0
以下を使用してTunnel_groupというグループを作成しました。
groupadd tunnel_group
これを使用してTunnel_userというユーザーを追加しました。 -Mは彼にホームディレクトリを提供しません。 -Gtunnel_groupは彼をTunnel_group(以前に作成したグループ)に追加します。 -sは彼のシェルを以前に作成したTunnel_shellファイルに設定します。
useradd -M -G tunnel_group -s /usr/bin/tunnel_shell tunnel_user
次に、次のようにユーザーパスワードを設定しました。
passwd tunnel_user
/etc/ssh/sshd_config/
ファイルの末尾に追加しました。
Match Group tunnel_group
AllowTcpForwarding yes
#X11Forwarding no
PermitTunnel yes
GatewayPorts yes
AllowAgentForwarding yes
PermitOpen localhost: 1080
ForceCommand echo 'This account can only be used for SOCKS and has be restricted accordingly.'