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

推薦する

Vueルーティングルーターの詳細な説明

目次ルーティングプラグインをモジュール方式で使用するルートの使用宣言型ナビゲーションプログラムによる...

CentOS 7.0 (mysql-5.7.21) で複数の MySQL インスタンスを起動する方法

設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...

mysql5.7.21 の異常起動を修正する方法

同僚から、停電のため MySQL インスタンスを起動できないという報告がありました。 innodb_...

MySQLクエリ時にフィールドにデフォルト値を割り当てる方法

必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...

Jenkins+tomcat の自動ホットデプロイメント/再起動と発生した問題の解決策 (推奨)

1. 背景同社のプロジェクトは、これまでは手動で Maven でパッケージ化し、サーバーにアップロ...

CSS の新機能には、コントロールページの再描画と再配置の問題が含まれています

新しい CSS プロパティ contain を紹介する前に、読者はページの再描画と再配置が何であるか...

nginx を使用した負荷分散モジュールの解釈

目次負荷分散に nginx を使用するための 2 つのモジュール:アップストリームはロードノードプー...

Linux で Multitail コマンドを使用するチュートリアル

MultiTail は、tail コマンド機能と同様に、複数のドキュメントを同時に監視するために使用...

Vue.jsで実装されたカレンダープラグインの使い方を詳しく説明します

本日実装する機能は、以下の機能です。vue.js シミュレーションカレンダープラグインさて、もう無駄...

etcd クラスターをデプロイするための docker-compose の実装手順

目次docker-compose.ymlを書くdocker-composeを実行するビルドステータス...

docker を使用して influxdb と mongo をデプロイするための一般的なコマンド

Docker ベースのデータベースをデプロイするsudo docker pull influxdb ...

Vue3 の emitting と attr の違いの分析

目次結論は実践分析拡張機能要約する結論は親コンポーネントでカスタム イベントが定義されている場合、子...

Nginx 構成の実装 https

目次1: https証明書を準備する2: nginx sslモジュールを準備する3: SSL証明書を...

int(3)とint(10)の値の範囲はmysqlで同じですか?

目次質問:答え:現実:知識ポイント結論は:要約する質問: MySQLフィールド、unsigned i...

Linux NFSメカニズムの動作原理と例の分析

NFS とは何ですか?ネットワークファイルシステムネットワーク上でファイルを保存および整理するための...