はじめに
CentOSに限らずSSH接続ではRootログイン禁止が一般的です。
今回はこの作業をテーマに行っていきたいと思います。
ユーザーをパスワード認証方式で作成します。
環境
■OS
CentOS8
全体のながれ
手順1.SSHユーザー作成
手順2.rootと同じ権限を付与
手順3.ID/パスワードを該当ユーザーに渡す
手順4.ログインを確認してもらう
手順5.Rootログイン禁止
余談(ログインします)
SSHターミナルを開いて接続してください。
最初はrootユーザーかと思いますので@
の前はroot、後ろは接続先です。
root@接続IP
下記どちらかで接続します。
- パスワード認証
- 公開鍵認証方式(秘密鍵をお持ちの場合)
手順1.SSHユーザー作成
ユーザーコマンドで一般ユーザー作成
ユーザの作成コマンドはuseradd
を使用します。わたしの愛飲ドリンクからLipovitanというユーザーを作成したいと思います。
例)lipovitan
というユーザを作成
# useradd lipovitan
# passwd lipovitan
ユーザー lipovitan のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
一般ユーザーでログインしてみる
作成しただけで安心しないでください。ユーザーログインができるか試験します。
lipovitan@接続IP
手順2.rootと同じ権限を付与
Rootと同じ権限で操作できるようにする
CentOSのwheel
というグループに追加されている事が必要です。コマンドの先頭にsudo
をつけることで root 権限を実行します。作成ユーザをwheel
グループに追加いたします。
次のコマンドで確認
# groups lipovitan
lipovitan : lipovitan
グループに追加
# usermod -G wheel lipovitan
次のコマンドで確認
# groups lipovitan
lipovitan : lipovitan wheel
- 一般ユーザーでroot権限が使用できるか確認します。
※もし下記のようなメッセージがでても慌てなくて大丈夫です。一般ユーザーで一度exit
して、もう一度lipovitan@接続IP
で接続します。
$ sudo cd /var/log/
あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:
#1) 他人のプライバシーを尊重すること。
#2) タイプする前に考えること。
#3) 大いなる力には大いなる責任が伴うこと。
[sudo] lipovitan のパスワード:
lipovitan は sudoers ファイル内にありません。この事象は記録・報告されます。
-
sudo
を使用する度に毎回パスワードが求められる場合
特殊なコマンドvisudo
で/etc/sudoers
を編集する
# visudo /etc/sudoers
下記の場所を探します。
先程whell
のグループに一般ユーザーを追加しましたよね。
%wheel ALL=(ALL) ALL
このグループを下記のように変更します。
%wheel ALL=(ALL) NOPASSWD: ALL
これで毎回sudoを使ったコマンドの実行時にパスワードは求められなくなります。
手順3.ID/パスワードを該当ユーザーに渡す
手順4.ログインを確認してもらう
手順5.Rootログイン禁止
Root権限でSSHできないように設定を変更します。
# cd /etc/ssh
# vi /etc/ssh/sshd_config
省略
#PermitRootLogin yes
省略
sshd_config
のPermitRootLogin
を探します。
コメントアウトされていればコメントを外してPermitRootLogin no
に設定してください。
コメントアウトされていなければPermitRootLogin yes
かと思いますのでPermitRootLogin no
に設定してください。
■SSHターミナルに対して、キーボードのi
を一度押すと編集モードに切り替わります。
上記の編集作業を書き換えたらキーボードのesc
を押すと、保存モードに変化します。
- 保存する場合は
command
+:
に続けてwq
を押します。 - 保存しない場合は
command
+:
に続けてq!
を押してください。
■編集が終わりましたら設定を有効化するためにsshd
を再起動します。
# systemctl restart sshd
以上で手順は終わりです。お疲れ様でした。