この簡単なガイドでは、LinuxおよびUnixオペレーティングシステムで特定のユーザーまたはグループへのSSHアクセスを許可または拒否する手順について説明します。
はじめに
少し前に、制限付きシェルを使用してユーザーのLinuxシステムへのアクセスを制限する方法について説明しました。 。ユーザーを制限付きモードにすると、許可されている以外のことはできなくなります。
特定のユーザーが特定のコマンドセットのみを実行できるようにする場合に役立ちます。
この記事では、SSHのデフォルト構成ファイルにいくつかの変更を加えることで、ユーザーまたはグループのSSHアクセスを有効または無効にします。
Linuxの特定のユーザーまたはグループへのSSHアクセスを許可または拒否します
openSSHのデフォルト構成ファイルには、特定のユーザーまたはグループへのSSHアクセスを許可および拒否するための2つのディレクティブがあります。
まず、ユーザーとグループへのSSHアクセスを許可または有効にする方法を見てみましょう。以下に示すすべてのコマンドは、 root
として実行する必要があることに注意してください。 またはsudo
ユーザー。
1。ユーザーまたはグループへのSSHアクセスを許可する
特定のユーザーにSSHアクセスを許可するには、たとえば sk 、 sshd_config
を編集します ファイル:
$ sudo vi /etc/ssh/sshd_config
"i"を押します 挿入モードに入り、次の行を追加または変更するには:
AllowUsers sk

ssh構成ファイルを編集して、特定のユーザーにsshアクセスを許可します
「sk」をユーザー名に置き換えます。 スペースのインデントに注意してください 「AllowUsers」と「sk」の間。 タブを使用する必要があります スペースバーの代わりに 。意味-「AllowUsers」という単語を追加し、Tabキーを押してから、ユーザー名を指定します。
以下に示すように、複数のユーザーを指定することもできます。
AllowUsers user1 user2
グループ全体を許可するには、たとえば root
、次の行を追加/編集します:
AllowGroups root
この設定により、"root"
のすべてのメンバーが許可されます LinuxサーバーにSSH接続するグループ。
ESC
を押します キーを押して挿入モードを終了し、 :wq
と入力します SSH構成ファイルを保存して終了します。 SSHサービスを再起動して、変更を有効にします。
$ sudo systemctl restart sshd
ここで、ユーザーは sk および"root"
のすべてのメンバー グループはLinuxサーバーにSSHで接続できます。他のユーザー(skと"root"
のメンバーを除く) group)はssh経由でシステムにアクセスすることを許可されていません。
確認するには、許可されていないユーザーのいずれかとしてLinuxサーバーにSSH接続してみてください。
$ ssh [email protected]
次のエラーメッセージが表示されます:
[email protected]'s password: Permission denied, please try again.

SSHアクセス許可が拒否されました
2。ユーザーまたはグループへのSSHアクセスを拒否する
ユーザーまたはグループへのSSHアクセスを無効または拒否するには、リモートサーバーの sshd_config
で次のディレクティブを追加/変更する必要があります。 ファイル。
- DenyUsers
- DenyGroups
「sk」と呼ばれる特定のユーザーへのSSHアクセスを拒否するには、sshd_config
を編集します ファイル:
$ sudo vi /etc/ssh/sshd_config
sshd_configファイルに次の行を追加/編集します。
DenyUsers sk
スペースのインデントが正しいことを確認してください。スペースバーは使用しないでください。 Tabキーを押して、ユーザー名を追加します。
同様に、複数のユーザーへのSSHアクセスを拒否するには、以下に示すようにスペースを区切ってユーザー名を指定します。
DenyUsers user1 user2
同様に、グループ全体へのSSHアクセスを拒否するには、たとえば root
、追加:
DenyGroups root
ssh設定ファイルを保存して終了します。 sshサービスを再起動して、変更を有効にします。
$ sudo systemctl restart sshd
次に、ブロックされたユーザーアカウントからLinuxマシンにSSHで接続してみます(例:sk:
)。$ ssh [email protected]
次のメッセージが表示されます:
[email protected]'s password: Permission denied, please try again. [email protected]'s password:
3。 SSHルートログインを無効にする
ルートsshアクセスは、セキュリティの観点から悪い習慣と見なされています 。したがって、システムを保護するためにSSHルートユーザーログインを無効にすることを強くお勧めします。
root sshログインを無効にするには、sshd_config
を編集します ファイル:
$ sudo vi /etc/ssh/sshd_config
次の行を見つけてコメントを外し、値を no
に設定します 。
PermitRootLogin no
SSHサービスを再起動して、変更をすぐに有効にします:
$ sudo systemctl restart sshd
結論
Linuxで特定のユーザーまたはグループにSSHアクセスを許可および制限する方法をマスターしました。 LinuxでSSHルートログインを拒否または無効にする方法も学びました。これは、LinuxサーバーをセットアップするときにすべてのLinux管理者が実装する必要がある推奨されるセキュリティプラクティスの1つです。
関連記事:
- 特定のユーザーまたはグループのSSHパスワード認証を無効にする
- ユーザー/グループ/システムごとのSSHログイン数を制限する
- Linuxで特定のディレクトリにSSHで接続する方法