CentOS で新しいユーザーを作成し、キーログインを有効にする方法

CentOS で新しいユーザーを作成し、キーログインを有効にする方法

CentOS にはデフォルトで 1 人の root ユーザーしかいませんが、root ユーザーに権限が多すぎるため、複数人での共同作業には適していません。権限管理とセキュリティ上の理由から、システム用に新しいユーザーを作成し、そのユーザーの SSH ログインを有効にして、root ユーザーのログインを無効にします。

CentOS Linux release 7.6.1810 (Core)実践に基づいています。

新しいユーザーを作成する

CentOS では、 adduseruseradd間に違いはありません。

[root@centos_7_6_1810 ~]# ll /usr/sbin/ | grep ユーザー
lrwxrwxrwx 1 root root 7 6月 24 10:14 adduser -> useradd
-rwxr-xr-x. 1 ルート ルート 33104 2017年8月3日 fuser
-rwxr-xr-x. 1 ルート ルート 15832 2018年4月13日 lnewusers
-rwxr-xr-x. 1 ルート ルート 15752 2018年4月13日 luseradd
-rwxr-xr-x. 1 ルート ルート 11576 2018年4月13日 luserdel
-rwxr-xr-x. 1 ルート ルート 19896 2018年4月13日 lusermod
-rwxr-xr-x 1 ルート ルート 76232 2019年3月14日 新規ユーザー
-rwxr-xr-x 1 root root 33072 2019年3月14日 runuser
-rwxr-xr-x. 1 ルート ルート 19720 2018年4月11日 sasldblistusers2
-rwxr-x--- 1 ルート ルート 118224 2019年3月14日 useradd
-rwxr-x--- 1 ルート ルート 80400 2019年3月14日 userdel
-rwxr-x--- 1 ルート ルート 113856 2019年3月14日 usermod
-rwsr-xr-x. 1 ルート ルート 11376 2018年10月31日 usernetctl

上記のコマンドから、 adduser useraddコマンドのソフト リンクにすぎないことがわかります。

ソフト リンクに関しては、一時的に Windows システムのショートカットと考えることができます。

新しいユーザーを作成するには、 useraddコマンドを使用します。

[root@centos_7_6_1810 ~]# ユーザー追加 luizyao
[root@centos_7_6_1810 ~]# ls /home/
ルイジャオ

ほとんどの Linux ディストリビューションでは、 useraddコマンドは/home/の下に対応するユーザー ディレクトリを作成しません。作成する場合は、コマンドに-m (--create-home)オプションを追加する必要があります。ただし、CentOS ではこのユーザー ディレクトリが自動的に作成されます。

このユーザー名でシステムにログインする場合は、パスワードを設定する必要があります。

[root@centos_7_6_1810 ~]# パスワード luizyao
ユーザー luizyao のパスワードを変更します。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正常に更新されました。

次に、このユーザーでシステムにログインします。

[luizyao@centos_7_6_1810 ~]$ だれだ
ルイジャオ

新規ユーザーを承認する

通常、新規ユーザーは自分のユーザー ディレクトリ (/home/luizyao/) で完全な権限を持ち、他のディレクトリでは他のユーザーからの承認が必要です。最も一般的に使用される権限は root ユーザーの権限であり、このときsudoコマンドが役立ちます。これにより、信頼できるユーザーは他のユーザーとしてコマンドを実行でき、デフォルトでは root ユーザーが使用されます。

新しいユーザーは信頼できるリストに含まれていないため、root ユーザーを使用してコマンドを実行することはできません。

注: この時点で、新しいユーザーとしてシステムにログインします。

[luizyao@centos_7_6_1810 /]$ sudo whoami
[sudo] luizyaoのパスワード:
luizyao は sudoers ファイルに存在しません。このインシデントは報告されます。

CentOS では、Sudoers リストに新しいユーザーを追加する方法が 2 つあります。

注: この時点で、root としてシステムにログインします。

方法1: 新しいユーザーをwheelユーザーグループに追加する

CentOS や Fedora などの RedHat ディストリビューションでは、ユーザー グループwheel sudo 権限が付与されているため、 wheelユーザー グループに新しいユーザーを追加して sudo 権限を取得できます。

[root@centos_7_6_1810 ~]# グループ luizyao
ルイザオ: ルイザオ
[root@centos_7_6_1810 ~]# usermod -aG ホイール luizyao
[root@centos_7_6_1810 ~]# グループ luizyao
luizyao : luizyao ホイール

新しいユーザーをwheelユーザー グループに追加するには、 usermodコマンドを使用します。ユーザーが属するユーザー グループを表示するには、 groupsコマンドを使用します。

この時点で、新しいユーザーは root 権限でコマンドを実行できます。

[luizyao@centos_7_6_1810 ルート]$ sudo whoami
[sudo] luizyaoのパスワード:
根

知らせ:

この方法では、以下に示すように、 wheelユーザー グループのデフォルト構成であるため、 sudoコマンドを実行するには新しいユーザーのパスワードを入力する必要があります。

# /etc/sudoers

106 ## グループwheelのユーザーがすべてのコマンドを実行できるようにする
107 %ホイール ALL=(ALL) ALL
108
109 ## パスワードなしでも同じ
110 # %wheel ALL=(ALL) NOPASSWD: ALL

グループからユーザーを削除します。次のコマンドを使用できます。

[root@centos_7_6_1810 ~]# gpasswd -d luizyao ホイール
グループ wheel からユーザー luizyao を削除しています
[root@centos_7_6_1810 ~]# グループ luizyao
ルイザオ: ルイザオ

方法2: sudoersリストに新しいユーザーを追加する

/etc/sudoersファイルでは、ユーザーとユーザー グループの sudo 権限を設定できます。これはより柔軟なアプローチです。さらに、新しいユーザーの権限を設定するには 2 つの方法があります。

1. 新しいユーザーの権限は/etc/sudoersファイルで直接設定できますが、このファイルのデフォルトの権限は読み取り専用であるため、最初に書き込み権限を追加し、編集後に読み取り専用に戻す必要があることに注意してください。

/etc/sudoersファイルを変更するには、 visoduコマンドを使用してください。これにより、構文エラーをチェックするのに役立ちます。

2. /etc/sudoers.dディレクトリに新しいユーザー専用の設定ファイルを追加することもできます (推奨)。

bash [root@centos_7_6_1810 ~]# echo "luizyao ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/luizyao luizyao ALL=(ALL) NOPASSWD:ALL [root@centos_7_6_1810 ~]# ll /etc/sudoers.d/luizyao -rw-r--r-- 1 root root 32 Sep 17 17:51 /etc/sudoers.d/luizyao

上記のコマンドは、luizyao がパスワードなしで任意のユーザー (2 番目の ALL、デフォルトでは root) として任意のホスト (最初の ALL) 上の任意のコマンド (3 番目の ALL) を実行できることを意味します。

[luizyao@centos_7_6_1810 ルート]$ sudo whoami
根

注: ファイル名は何でも構いませんが、通常はユーザー名に設定します。

新規ユーザーのSSHキーログインを有効にする

この時点で、新しいユーザーとしてシステムにログインします。

キーペアを作成します。

[luizyao@centos_7_6_1810 ~]$ ssh-keygen -t ecdsa # 楕円曲線デジタル署名アルゴリズム 公開/秘密 ecdsa キー ペアを生成しています。
キーを保存するファイル (/home/luizyao/.ssh/id_ecdsa) を入力してください: # キー ペアが保存されているフォルダーを選択します。ディレクトリ '/home/luizyao/.ssh' が作成されました。
パスフレーズを入力してください (パスフレーズがない場合は空白): # 秘密鍵のパスワード同じパスフレーズをもう一度入力してください: # 秘密鍵のパスワードを確認してください ID は /home/luizyao/.ssh/id_ecdsa に保存されました。
公開鍵は /home/luizyao/.ssh/id_ecdsa.pub に保存されました。
キーのフィンガープリントは次のとおりです。
SHA256:FljQN9JFxB/C83Mv7N3rFNLCxXICRxaKzKDb+Tzsgwo luizyao@centos_7_6_1810
キーのランダムアート画像は次のとおりです。
+---[ECDSA 256]---+
| .+.. B==. |
| .o* = X o |
| .. .* o B = |
| o .. . X .|
| . oS = =.|
| .+ = o|
| E .= . +.|
| . .... oo|
| .. .. .o.|
+----[SHA256]-----+

秘密鍵をローカル コンピューターにダウンロードします。

Mac OS の実践に基づいています。

scpコマンドを使用して秘密鍵をダウンロードします。

yaomengdeMacBook-Air:~ yaomeng$ scp luizyao@<ip address>:/home/luizyao/.ssh/id_ecdsa ~/.ssh/

この時点では、ログインするにはまだパスワードが必要です。

yaomengdeMacBook-Air:~ yaomeng$ ssh luizyao@<IP アドレス>
キー「/Users/yaomeng/.ssh/id_ecdsa」のパスフレーズを入力してください: # 秘密キーのパスワードを入力してください。ログインに失敗しました [email protected] パスワード: # luizyao のユーザーパスワード 最終ログイン: 2019 年 9 月 17 日火曜日 22:50:22

SSHパスワードフリーログイン

公開鍵の名前を authorized_keys に変更します。

[luizyao@centos_7_6_1810 ~]$ mv ~/.ssh/id_ecdsa.pub ~/.ssh/authorized_keys
[luizyao@centos_7_6_1810 ~]$ ll ~/.ssh/
合計 8
-rw-r--r-- 1 luizyao luizyao 185 9月17日 22:58 authorized_keys
-rw------- 1 luizyao luizyao 314 9月17日 22:58 id_ecdsa

知らせ:

以前は authorized_keys ファイルがなかったため、ここでは名前を変更しました。authorized_keys ファイルが既にある場合は、次のコマンドを使用してファイルの末尾に公開キーを追加できます。

猫 >> ~/.ssh/authorized_keys < ~/.ssh/id_ecdsa.pub

authorized_keys ファイル、~/.ssh/ ディレクトリ、またはユーザーのホーム ディレクトリ (/home/luizyao/) に他のユーザーからの書き込み権限が与えられている場合、 sshdファイルが安全でないと判断し、StrictModes を no に設定していない限りそのファイルを使用しないことに注意してください。

ヘルプドキュメントは、 man sshdコマンドで表示できます。

~/.ssh/承認済みキー
   このユーザーとしてログインするために使用できる公開鍵(DSA、ECDSA、Ed25519、RSA)をリストします。このファイルの形式は上記で説明されています。
   ファイルの内容は機密性が高くありませんが、推奨される権限は、ユーザーに対しては読み取り/書き込み権限であり、他のユーザーはアクセスできません。

   このファイル、~/.ssh ディレクトリ、またはユーザーのホーム ディレクトリが他のユーザーによって書き込み可能である場合、権限のないユーザーによってファイルが変更または置き換えられる可能性があります。
   sshd は、StrictModes オプションが「no」に設定されていない限り、これを使用できません。

この時点で、SSH を使用してパスワードなしでログインできます。

yaomengdeMacBook-Air:~ yaomeng$ ssh [email protected]
キー「/Users/yaomeng/.ssh/id_ecdsa」のパスフレーズを入力してください: # 秘密鍵のパスワード 最終ログイン: 2019 年 9 月 18 日水曜日 00:00:41 49.65.108.161 から

SSHパスワードログインを無効にする

現在、パスワードを使用してログインすることはできますが、これはまだ安全ではありません。今後は、システムにログインするためのパスワードの使用を禁止します。

CentOS システムの場合、SSH 構成ファイル/etc/ssh/sshd_configPasswordAuthentication noに変更するだけで済みます。

SSH サービスを再起動します。

[luizyao@centos_7_6_1810 ~]$ sudo systemctl sshdを再起動します

SSH のパスワード ログインは無効になっており、キーによるログインのみが許可されています。

他の

システムのセキュリティをさらに強化するには、次の方法があります。

SSHを使用したルートユーザーのログインを無効にする

SSH 構成ファイル/etc/ssh/sshd_configPermitRootLogin noに変更し、SSH サービスを再起動するだけです。

非標準的なSSHポートの使用

デフォルトの SSH ポートは 22 です。これを通常とは異なるポートに変更するには、SSH 構成ファイル/etc/ssh/sshd_configPort値を変更し (例: 10178)、SSH サービスを再起動します。

ファイアウォールの sshd 構成も変更する必要があります。CentOS 7 はデフォルトで firewalld を使用します。次のように構成します。

ssh に関するfirewalldのデフォルト設定ファイルをシステム設定フォルダにコピーします。

[luizyao@centos_7_6_1810 ~]$ sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

構成ファイル内のポート構成を変更します。

<!-- /etc/firewalld/services/ -->

<?xml バージョン="1.0" エンコーディング="utf-8"?>
<サービス>
 <short>SSH</short>
 <description>Secure Shell (SSH) は、リモート マシンにログインしてコマンドを実行するためのプロトコルです。安全な暗号化通信を提供します。ファイアウォールで保護されたインターフェイスを介して SSH 経由でマシンにリモート アクセスする場合は、このオプションを有効にしてください。このオプションを使用するには、openssh-server パッケージがインストールされている必要があります。</description>
 <ポート プロトコル="tcp" ポート="10178"/>
</サービス>

ファイアウォール設定を再読み込みします:

[luizyao@centos_7_6_1810 ~]$ sudo ファイアウォール-cmd --reload
成功

pingを無効にする

ファイアウォールに次のルールを追加し、構成を再ロードします。

[luizyao@centos_7_6_1810 ~]$ sudo ファイアウォール-cmd --permanent --add-icmp-block=エコー応答
[luizyao@centos_7_6_1810 ~]$ sudo ファイアウォール-cmd --permanent --add-icmp-block=エコーリクエスト
[luizyao@centos_7_6_1810 ~]$ sudo ファイアウォール-cmd --reload

要約する

上記は、CentOS で新しいユーザーを作成し、キー ログインを有効にするために紹介した方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Centos7 で N 回ログインに失敗した後にユーザーをロックしてログインを禁止する方法
  • CentOS で SSH パスワードフリーログインを設定した後もパスワードを入力しなければならない問題の解決策
  • CentOS7でSSHログインポートを変更する方法
  • Redhat 7/CentOS 7 SSH パスワードフリーログイン方法
  • CentOS 6.5 で SSH ポートを変更し、ルート リモート ログインを無効にする方法
  • CentOS 6.5 での SSH パスワードフリー ログイン設定チュートリアル
  • CentOS での SSH パスワードレス ログイン用設定ファイル

<<:  MySQL Innodbインデックスの原理の詳細な説明

>>:  React Nativeプロジェクトフレームワークの構築経験

推薦する

jQuery はラブエフェクトをクリックする

この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...

Linux の権限管理コマンド (chmod/chown/chgrp/unmask) の詳細な説明

目次chmod例権限に関する特別な注意分析するチョーンchgrp umask Linux オペレーテ...

安全な構成のためにDockerでTLSを有効にする手順

序文以前、Docker の 2375 Remote API を有効にしていました。会社のセキュリティ...

Windows環境でのMySQL 8.0.13無料インストールバージョンの設定チュートリアル

目次圧縮ファイルをダウンロードするアドレス: https://dev.mysql.com/downl...

MySQL トランザクション制御フローと ACID 特性

目次1. ACIDの特性トランザクション制御構文3. トランザクション同時実行例外1. ダーティリー...

jsはショッピングカートの加算と減算、価格計算機能を実現します

この記事では、ショッピングカートの増減と価格計算を実現するためのjsの具体的なコードを紹介します。具...

HTMLのタグと要素の違いの詳細な説明

ウェブページに慣れていない友人の多くは私と同じように、HTML で要素、タグ、属性がどのように定義さ...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...

HTML におけるメタの役割について (インターネットから収集および分類)

W3Cschoolではこのように説明しています<meta> 要素は、検索エンジン向けの説...

ReactプロジェクトでのTypeScriptの実装

目次1. はじめに2. 使用方法ステートレスコンポーネントステートフルコンポーネント制御コンポーネン...

dockerでマウントされたディレクトリが読み書きできない問題を解決する

次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...

Mysql データベース ストアド プロシージャの基本構文の説明

プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...

シンプルなショッピングフォームを実装するJavaScript

この記事では、簡単なショッピングフォームを実装するためのJavaScriptの具体的なコードを参考ま...

Reactでパスワード強度検出器を実装する方法

目次序文使用コンポーネントの記述データ構造分析プロセス分析基礎コードの分析他の要約する序文パスワード...

HTML ul 順序なしテーブルのアプリケーションネスト

順序なしリストのアプリケーションネストコードをコピーコードは次のとおりです。 <!DOCTYP...