Linux で特定のユーザーまたはユーザー グループに対して SSH を有効または無効にする方法

Linux で特定のユーザーまたはユーザー グループに対して SSH を有効または無効にする方法

会社の基準により、特定のユーザーだけに Linux システムへのアクセスを許可することができます。あるいは、少数のグループのユーザーだけに Linux システムへのアクセスを許可することもできます。では、そのような要件をどのように達成するのでしょうか?最善の方法は何ですか?簡単な方法でそれを達成するにはどうすればよいですか?

はい、方法はいろいろあります。しかし、私たちはシンプルで簡単な方法を使うべきです。この目標をシンプルかつ簡単に達成するには、 /etc/ssh/sshd_configファイルに必要な変更を加えます。この記事では、要件を達成するための詳細な手順を説明します。

なぜこれをするのでしょうか?それは安全上の理由です。 openSSH の使用に関する詳細情報については、このリンクをご覧ください。

SSHとは何ですか?

openssh は OpenBSD Secure Shell の略です。 Secure Shell(ssh) Secure Shell (SSH) プロトコルを使用して安全でないネットワーク内のリモート ホストに安全にアクセスできるようにする、無料のオープン ソース ネットワーク ツールです。

クライアントサーバーアーキテクチャ(C/S)を採用し、ユーザー認証、暗号化、コンピューターとトンネル間のファイル転送などの機能を備えています。

telnet や rcp などの従来のツールでこれを行うこともできますが、これらのツールはアクションの実行中にパスワードをクリアテキストで送信するため、安全ではありません。

Linux でユーザーが SSH を使用できるようにするにはどうすればよいでしょうか?

次のようにして、指定したユーザーまたはユーザーのリストに対して SSH アクセスを有効にできます。複数のユーザーを許可する場合は、スペースで区切って同じ行に追加できます。

これを実現するには、次の値を/etc/ssh/sshd_configファイルに追加するだけです。 この例では、user3 に ssh の使用を許可します。

# echo "AllowUsers user3" >> /etc/ssh/sshd_config

次のコマンドを実行して、正常に追加されたかどうかを確認できます。

# cat /etc/ssh/sshd_config | grep -i allowusers AllowUsers user3

これで完了です。ssh サービスを再起動するだけで、魔法のようなことが起こるはずです。 (以下の 2 つのコマンドは同じ効果を持ちます。サービスの管理方法に応じていずれかを選択してください。)

# systemctl sshdを再起動します
または# サービスを再起動します sshd

新しいターミナルまたはセッションを開いて、別のユーザーとして Linux システムにアクセスするのは簡単です。はい、ここでは user2 は SSH を使用してログインすることができず、以下に示すエラー メッセージが表示されます。

# ssh ユーザー[email protected]
[email protected]のパスワード: 
権限が拒否されました。もう一度お試しください。

出力:

3月29日02:35 CENTOS7 SSHD [4900]:Alowusersにリストされていないため、192.168.1.6からのユーザーユーザー2 centos7 SSHD [4900]:入力(user2)3月29日02:40 CENTOS7 SSHD [4900]:PAM_UNIX(SSHD:auth):認証障害= 0 euid = 0 tty = ssh ruser = rhost = 192.168.1.6 user = user = user = user2 mar 2902:43 centos7 6ポート42568 SSH2

同時に、user3 は許可されたユーザーのリストに含まれているため、システムにログインできます。

# ssh ユーザー[email protected]
[email protected]のパスワード: 
[user3@CentOS7 ~]$

出力:

3月29日 02:01:13 CentOS7 sshd[4939]: 192.168.1.6 ポート 42590 ssh2 から user3 のパスワードを受け入れました 3月29日 02:01:13 CentOS7 sshd[4939]: pam_unix(sshd:session): (uid=0) によってユーザー user3 のセッションが開かれました

Linux でユーザーが SSH を使用できないようにするにはどうすればいいですか?

次の内容を使用して、指定したユーザーまたはユーザー リストを設定して ssh を無効にすることができます。複数のユーザーを無効にする場合は、スペースで区切って同じ行に追加できます。

これを実現するには、次の値を/etc/ssh/sshd_configファイルに追加するだけです。 この例では、ユーザー user1 の ssh アクセスを無効にします。

# echo "DenyUsers user1" >> /etc/ssh/sshd_config

次のコマンドを実行して、正常に追加されたかどうかを確認できます。

# cat /etc/ssh/sshd_config | grep -i denyusers
DenyUsers ユーザー1

これで完了です。ssh サービスを再起動するだけで、魔法のようなことが起こるはずです。

# systemctl sshdを再起動します
# サービスを再起動します。sshd

新しいターミナルまたはセッションを開き、無効なユーザーを使用して Linux システムにアクセスしようとするのは簡単です。はい、ここでは user1 ユーザーが禁止リストに含まれています。そのため、ログインしようとすると、以下に示すようなエラー メッセージが表示されます。

# ssh ユーザー[email protected]
[email protected]のパスワード: 
権限が拒否されました。もう一度お試しください。

出力:

3月29日01:53:42 CENTOS7 SSHD [4753]:192.168.1.6からのユーザーユーザー1は、Denyusersにリストされていますユーザー(user1)3月29日に失敗しました192.168.1.6ポート42522 SSH2

Linux でユーザー グループが SSH を使用できるようにするにはどうすればよいですか?

次のようにすると、指定したグループまたは複数のグループに ssh の使用を許可できます。

複数のグループに ssh の使用を許可する場合は、同じ行のグループをスペースで区切る必要があります。

これを実現するには、次の値を/etc/ssh/sshd_configファイルに追加するだけです。この例では、2g-admin グループに ssh の使用を許可します。

# echo "AllowGroups 2g-admin" >> /etc/ssh/sshd_config

次のコマンドを実行して、正常に追加されたかどうかを確認できます。

# cat /etc/ssh/sshd_config | grep -i allowgroups
AllowGroups 2g-admin

このユーザー グループに属するユーザーを表示するには、次のコマンドを実行します。

# getent グループ 2g-admin
2g-admin:x:1005:ユーザー1、ユーザー2、ユーザー3

これで完了です。ssh サービスを再起動するだけで、魔法のようなことが起こるはずです。

# systemctl sshdを再起動します
または# サービスを再起動します sshd

はい、ユーザー user1 は 2g-admin グループに属しているため、システムにログインできます。

# ssh ユーザー[email protected]
[email protected]のパスワード: 
[user1@CentOS7 ~]$

出力:

3月29日 02:10:21 CentOS7 sshd[5165]: 192.168.1.6 ポート 42640 ssh2 から user1 のパスワードを受け入れました
3月29日 02:10:22 CentOS7 sshd[5165]: pam_unix(sshd:session): ユーザーuser1のセッションが(uid=0)によって開かれました

はい、ユーザー user2 も 2g-admin グループに属しているため、システムにログインできます。

# ssh ユーザー[email protected]
[email protected]のパスワード: 
[user2@CentOS7 ~]$

出力:

3月29日 02:10:38 CentOS7 sshd[5225]: 192.168.1.6 ポート 42642 ssh2 から user2 のパスワードを受け入れました 3月29日 02:10:38 CentOS7 sshd[5225]: pam_unix(sshd:session): (uid=0) によってユーザー user2 のセッションが開かれました

許可されたグループに属していない他のユーザーを使用してシステムにログインしようとすると、以下に示すようなエラー メッセージが表示されます。

# ssh [email protected] [email protected] のパスワード: アクセスが拒否されました。もう一度お試しください。

出力:

3月29日02:12:36 CENTOS7 SSHD [5306]:192.168.1.6からのユーザーラドミンは、ユーザーのグループがAllowGroupsにリストされていないため、3月29日02:12:36 SSHD [5306]:Input_Userauth_Request:Invalid ladmin [PREAUTH] 310]:ユーザー(LADMIN)3月29日02:12:56 CENTOS7 SSHD [5306]:PAM_UNIX(SSHD:AUTH):認証障害= 0 TTY = SSH RUSER = RHOST = RHOST = 192.168.1.6ユーザー= FAIRSファイナスファイナス= 58.12:58. 192.168.1.6ポート42674 SSH2からのIDユーザーLADMIN

Linux でユーザーグループが SSH を使用できないようにするにはどうすればよいでしょうか?

以下の内容で、指定したグループまたは複数のグループによる ssh の使用を無効にすることができます。

複数のグループによる ssh の使用を無効にする場合は、スペースで区切って同じ行にグループを追加する必要があります。

これを実現するには、次の値を/etc/ssh/sshd_configファイルに追加するだけです。

# echo "DenyGroups 2g-admin" >> /etc/ssh/sshd_config

次のコマンドを実行して、正常に追加されたかどうかを確認できます。

# # cat /etc/ssh/sshd_config | grep -i denygroups
DenyGroups 2g-admin
# getent グループ 2g-admin
2g-admin:x:1005:ユーザー1、ユーザー2、ユーザー3

これで完了です。ssh サービスを再起動するだけで、魔法のようなことが起こるはずです。

# systemctl sshdを再起動します
または# サービスを再起動します sshd

はい、user1 は2g-adminユーザー グループのメンバーであるため、システムにログインできません。彼は ssh が無効になっているグループに属しています。

# ssh ユーザー[email protected]
[email protected]のパスワード: 
権限が拒否されました。もう一度お試しください。

出力:

3月29日02:17:32 CENTOS7 SSHD [5400]:192.168.1.6からのユーザーユーザー1グループはDenyGroupsにリストされているため、3月29日02:17:32 CENTOS7 SSHD [5400]:input_userauth_request:invalid users user1 :ユーザーのパスワードチェックは、ユーザー(ユーザー1)3月29日02:17:38 CENTOS7 SSHD [5400]:PAM_UNIX(SSHD:AUTH):認証障害= 0 TTY = SSH RUSER = RHOST = RHOST = 192.168.1.6ユーザー=ユーザー29 02:17:41 192.168.1.6ポート42710 SSH2

2g-admin ユーザー グループを除くすべてのユーザーは、ssh を使用してシステムにログインできます。 たとえば、ladmin などのユーザーはシステムにログインできます。

# ssh [email protected]
[email protected]のパスワード: 
[ladmin@CentOS7 ~]$

出力:

3月29日 02:19:13 CentOS7 sshd[5432]: 192.168.1.6 ポート 42716 ssh2 からの ladmin のパスワードを受け入れました 3月29日 02:19:13 CentOS7 sshd[5432]: pam_unix(sshd:session): (uid=0) によってユーザー ladmin のセッションが開かれました: https://www.2daygeek.com/allow-deny-enable-disable-ssh-access-user-group-in-linux/

要約する

Linux で特定のユーザーまたはユーザー グループに対して SSH を有効または無効にする方法についての説明はこれで終わりです。Linux ユーザーまたはユーザー グループの SSH の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linuxシステムはユーザーキーsshホストアクセスを使用する

<<:  MySQL データベースの 1045 エラーの解決方法

>>:  シンプルな計算機を実装するためのネイティブ js

推薦する

mysql 簡単な操作例を表示

この記事では、例を挙げて mysql show 操作について説明します。ご参考までに、詳細は以下の通...

MySQLトリガーの使用

トリガーにより、ステートメントの実行前または実行後に他の SQL コードを実行できます。トリガーは、...

初心者向け入門チュートリアル: ドメイン名の解決とバインディング

では、ドメイン名を登録して仮想ホストを購入した後、IE でドメイン名を入力して Web サイトを開く...

MySQL の 4 つのトランザクション分離レベルの詳細な説明

この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...

DockerHubを自分で構築する方法

先ほど使用したDocker HubはDockerによって提供されています。独自のDockerを構築す...

Nginx がサーバーの生存状態をパッシブにチェックする詳細な説明

導入定期的にヘルスチェックを送信して、アップストリーム グループ内の HTTP サーバーのヘルスを監...

Dockerでmysqlのルートパスワードを変更する方法

最初のステップはmysqlコンテナを作成することです docker exec -it コンテナID ...

ボタントリガーイベントを使用して背景色の点滅効果を実現します

背景色の点滅効果を実現するには、次のコードを <body> 領域に追加するだけです。コー...

よく理解しましたかタグ 定義方法 使用方法

序文:今日、「<!DOCTYPE> タグを注意深く理解しましたか?」と尋ねられました。私...

CSS BEM 命名標準の概要 (推奨)

1 BEM命名標準とはBem は、ブロック、要素、修飾子の略語であり、Yandex チームによって...

Vuex環境の詳細な説明

目次Vuex環境を構築する要約するVuex環境を構築するsrcディレクトリにフォルダstoreを作成...

MySQL InnoDB ReplicaSet の簡単な紹介

目次01 InnoDBレプリカセットの紹介02 InnoDBレプリカセットの制限03 導入前に知って...

Docker JVM メモリ使用量の表示

1. Docker コンテナのホスト マシンに入り、指定されたイメージを実行しているコンテナ ID ...

Windows で MySQL 5.7.17 をインストールし、エンコードを utf8 に設定する方法

ダウンロードMySQL 公式ダウンロード、Windows (x86、64 ビット)、ZIP アーカイ...

CentOS 8 VMware 仮想マシンがインターネットにアクセスするための静的 IP ネットワーク カードの設定の詳細な説明

最初のステップ: VMwareで、「編集」-「仮想ネットワークエディタ」をクリックします。下図に示す...