sshd_configでAllowGroupsとAllowUsersの両方を使用する方法は?


28

/etc/ssh/sshd_configとの両方AllowUsersを使用して、専用のdebian7サーバーで変更しようとしていますAllowGroups。しかし、私は両方を一緒に動作させることができないようです。


セットアップ

  • というユーザーがいますtestuser
  • そのユーザーは次のグループに属しますssh-users

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuser経由ssh testuser@<server_ip>で接続しようとしてパスワードを入力しています。

  • sshd_configはここで見つけることができます:http//pastebin.com/iZvVDFKL-私は基本的に私がデフォルトから加えた唯一の変更はだと思います:
    • 設定する PermitRootLogin no
    • で2人のユーザーを追加しますAllowUsers(実際のユーザー名はサーバー上で異なります)
  • service ssh restartは、変更後に毎回実行されますsshd_config

問題

  • testuser 設定すると接続できますAllowUsers

    AllowUsers user1 user2 testuser
    
  • testuserグループの設定時に接続できませんAllowGroups

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    これで結果Permission denied, please try again.ときtestuserSSHパスワードプロンプトでパスワードを入力します。


質問

  • AllowUsersオーバーライドしますAllowGroupsか?
  • ユーザー名を手動で追加せずにこれを修正する最良の方法は何AllowUsersですか?理想的にssh-usersは、sshd_config再び触れることなく、将来ユーザーをグループに追加できるようになりたいと考えています。

5
Ideally I'd like to be able to just add users to the ssh-users group in the future without having to touch sshd_config again.-では、なぜAllowUsersを使用しているのですか?全員をグループに入れてください。
ゾレダチェ14

回答:


24

はい、AllowUsers先例を取りますAllowGroups。指定した場合、で指定したパターンに一致するユーザーのみAllowUsersがSSHDインスタンスに接続できます。

sshd_config マンページによると:

/許可ディレクティブは、次の順序で処理されて拒否: DenyUsersAllowUsersDenyGroups、、最後にAllowGroups

したがって、問題を解決するには、おそらくどちらか一方を使用することです。グループがユーザーを管理するための好ましい方法である場合は、おそらくグループアクセスディレクティブを使用します。


それで、AllowGroups user1 user2 ssh-users仕事をするだけですか?私が誤って自分のssh特権を削除し、それを修正するためにサポートを受けなければならなかった前にそれが起こったので、私はそれをテストする前にあなたの確認を好むでしょう。どの程度Matchのブロック?私はマニュアルページを見ましたが、実際にどのように機能するかを知る直感/経験がないので、そこにアドバイスを求めています。たとえば、私が考えた処理順序では、AllowGroupsがAllowUsersの後に来るため、処理時にそれがオーバーライドされますが、私の直感はそこで間違っていました:)
Johannes 14

2
これらの3つすべてがシステム上のグループである場合、動作するはずです。user1とuser2が単なるユーザーである場合、それらをssh-usersに追加し、AllowGroups ssh-usersで取得できます。
Jeff-Inventor ChromeOS 14

@Johannesがそのようなことをテストするときは、マシンでシェルが開かれていることを確認してください。sshdを再起動してもセッションが中断されることはありません。新しいセッションを開くことができない場合は、既存のセッションで問題を修正できます。
ジャン・ベルナールヤンセン

6

ジェフの答えは、質問の詳細を詳細に説明していますが、この質問は少し異なるシナリオで使用することAllowUsersを検討していますAllowGroups。特定のサブネットからのグループ(ssh)のユーザーへの着信接続を制限したかった。

sshd_configの接続ルールはフィルターです。追加のルールが適用されるたびに、許容されるユーザーのセットを減らすことができます。ssh_config(5)これらのルールの形態を説明します。PATTERNS

さらに、次のAllowUsersセクションに従ってsshd_config

パターンの形式がUSER @ HOSTの場合、USERとHOSTが個別にチェックされ、特定のホストからの特定のユーザーへのログインが制限されます。HOST基準には、CIDRアドレス/マスクレン形式で一致するアドレスを追加で含めることができます。

AllowGroups USER @ HOSTフォームは受け入れません。

したがって、1)sshグループのユーザーと2)特定のサブネット/ホストのユーザーを受け入れるには:

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh

AllowGroups doesn't accept the USER@HOST form. これが何を意味するのかはわかりませんし、設定ファイルやドキュメントに書かれていることも確かではありません。グループを許可すると、間違いなくssh username@example.comを使用してログインできます。
AndrewD

1
@AndrewD AllowGroupsはグループ名のみを受け入れますAllowGroups ssh@example.com。たとえば、できません。HOSTはソースであり、ここからのソースです。
bjacobowski

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.