2

次のsshd構成を持つサーバーがいくつかあります。

# Authentication:
PermitRootLogin no
AllowGroups ssh
PubkeyAuthentication yes
PasswordAuthentication no

これは、グループ「ssh」のすべてのユーザーがログインできることを意味しますが、pubkey でのみログインできます。root のログインは許可されていません。

ただし、root には例外が必要です。$ip を使用するバックアップ サーバーは root としてログインする必要があります。

私は試した:

AllowUsers root@$ip
AllowGroups ssh

しかし、AllowUsers は AllowGroups ステートメントを上書きします。したがって、$ip からのルートのみがログインできます。

Match User root, Address $ip
    PermitRootLogin {yes|without-password}
    AllowUsers root

Match Address $ip
    PermitRootLogin {yes|without-password}
    AllowUsers *

どちらも完全に無視されます。グループ「ssh」の通常のユーザーは、ログインのみできます。

これは、ユーザー ログインが pubkey に制限され、ルート ログインが pubkey と特定の IP に制限されている単純なシナリオです。の解き方?

4

1 に答える 1

5

全体を投稿していないsshd_configため、状況を再現するのは少し難しいですが、これはうまくいくようです:

# Main config prohibits all logins
PermitRootLogin no
AllowUsers root

# Permit root logins from a specific address
Match Address 192.168.1.20
  PermitRootLogin yes

# Allow logins to anyone in "ssh" group.
Match Group ssh
  AllowUsers *

別の解決策は次のとおりです。

  • に次のものを用意してくださいsshd_config

    AllowGroups ssh
    PermitRootLogin without-password
    
  • グループrootのメンバーにしsshます。

    usermod -a -G ssh root
    
  • /root/.ssh/authorized_keys次のように、送信元アドレスが制限された公開鍵を に追加します。

    from=192.168.1.20 ssh-rsa ...
    

これにより、必要なものが得られます。

  • グループのメンバーのみsshがログインできます。
  • rootファイル内の特定の IP アドレスからのみログインでき authorized_keysます。
于 2014-02-09T14:10:37.923 に答える