専用のdebian7サーバーで/etc/ssh/sshd_config
をAllowUsers
とAllowGroups
の両方で変更しようとしています。ただし、両方を連携させることはできません。
testuser
というユーザーがいます。そのユーザーはssh-users
というグループに属しています:
$ groups testuser
testuser : testuser ssh-users
testuser
はssh testuser@<server_ip>
経由で接続を試み、パスワードを入力しています。
sshd_config
は次の場所にあります: http://Pastebin.com/iZvVDFKL -基本的に、デフォルトから行った唯一の変更は次のとおりだと思います:PermitRootLogin no
を設定するAllowUsers
を使用して2人のユーザーを追加します(実際のユーザー名は私のサーバーでは異なります)service ssh restart
は、sshd_config
を変更した後に毎回実行されます。testuser
canAllowUsers
で設定すると接続します:
AllowUsers user1 user2 testuser
testuser
できる[〜#〜]できない[〜#〜]いつ接続できるグループにAllowGroups
を設定:
AllowUsers user1 user2
AllowGroups ssh-users
testuser
がsshパスワードプロンプトにパスワードを入力すると、Permission denied, please try again.
になります。
AllowUsers
はAllowGroups
を上書きしますか?AllowUsers
に手動で追加せずにこれを修正する最良の方法は何ですか?理想的には、今後ssh-users
に再度触れることなく、sshd_config
グループにユーザーを追加できるようにしたいです。はい、AllowUsers
はAllowGroups
よりも優先されます。指定した場合、AllowUsers
で指定したパターンに一致するユーザーのみがSSHDインスタンスに接続できます。
による sshd_config
manpage :
許可/拒否ディレクティブは、
DenyUsers
、AllowUsers
、DenyGroups
、最後にAllowGroups
の順に処理されます。
したがって、問題の解決策はおそらくどちらか一方を使用することです。グループがユーザーを管理するための好ましい方法である場合は、おそらくグループアクセスディレクティブを使用することです。
Jeffの回答は質問の詳細を詳細にカバーしていますが、この質問では、少し異なるシナリオでAllowUsers
とAllowGroups
を使用することを検討しています。特定のサブネットからのグループ(ssh)のユーザーへの着信接続を制限したいと思いました。
sshd_config の接続ルールはフィルターです。追加のルールが適用されるたびに、受け入れ可能なユーザーのセットを減らすことしかできません。 PATTERNS
in ssh_config(5) これらのルールの形式を説明します。
さらに、sshd_config
のAllowUsers
セクションによれば、
パターンの形式がUSER @ Hostの場合、USERとHostが別々にチェックされ、特定のホストからの特定のユーザーへのログインが制限されます。ホスト基準には、CIDRアドレス/マスク長形式で照合するアドレスがさらに含まれる場合があります。
AllowGroups
は、USER @ Hostフォームを受け入れません。
したがって、1)sshグループのユーザーと2)特定のサブネット/ホストのユーザーを受け入れるには、次のようにします。
AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh
これが私たちが機能していることがわかった解決策です:
AllowUsers user1 user2
Match group ssh-users
AllowUsers *