CentOS7でユーザーを作成しSSH接続を行う

1pt   2018-11-08 11:31
IT技術情報局

環境
– サーバー: CentOS7.5.1804
– クライアント: macOS10.13.6

プロンプトでのコマンドは出力結果との区別のため「$」で表示。

ユーザーの作成とパスワードの設定

useraddコマンドでユーザーを作成1し、passwdコマンドでパスワードを設定する。

$ useradd test $ passwd test

ユーザーが追加されていることを確認する。
bash
$ cat /etc/passwd

ユーザーに管理者権限を設定する

ユーザーの所属グループにwheelグループを追加することで、ユーザーがsudoコマンドで管理者権限を必要とするコマンドを実行可能にする。

  • wheelグループとは

“応用力”をつけるためのLinux再入門(10

CentOS(バージョン7)では「wheelグループ」に全てのコマンドの実行が許可、つまりrootユーザー相当の権限が与えられています。

visudoコマンドで/etc/sudoersを編集し、ユーザーがsudoコマンドを実行可能にする。

$ visudo

コメントアウトを外し、wheelグループが全てのコマンドを実行可能する。

%wheel ALL=(ALL) ALL

ユーザーの所属グループにwheelグループを追加する。

$ gpasswd -a test wheel Adding user test to group wheel

ユーザーがwheelグループに所属していることを確認する。

$ groups test test : test wheel suコマンドを使用したログインをwheelグループのユーザーのみ許可する

os全体の認証システムである「PAM(Pluggable Authentication Modules)」を利用し、wheelグループに所属するユーザーのみがsuコマンドによるrootアカウントへの切り替えを許可する。

Linuxの各アプリケーションが共通して利用する「PAM認証」について

suコマンドのPAM設定ファイルである/etc/pam.d/suファイル内のコメントアウトを外し、pam_wheel.so モジュールを有効化する。

/etc/pam.d/su # Uncomment the following line to require a user to be in the "wheel" group. auth required pam_wheel.so use_uid

SSHサーバーの設定

openssh-serverはプリインストールされているため、設定ファイルを変更する。

$ vim /etc/ssh/sshd_config

パスワード認証を許可し、セキュリティを高めるためにrootユーザーでのSSHログインを禁止する。

PermitRootLogin no PasswordAuthentication yes

接続するユーザーを制限する場合

AllowUsers test # 複数指定する場合 AllowUsers ユーザー1 ユーザー2

SSHサーバーを再起動し、変更を適用する。

systemctl restart sshd.service

一度パスワード認証でログインを行い、ssh接続が成功することを確認する。

ssh test@aaa.bbb.ccc.ddd # ユーザー名@IPアドレス

接続が失敗する場合はstatusで確認できる。

systemctl status sshd.service

クライアントでのSSH接続の設定

SSHについてのわかりやすい解説

SSHなるものをよくわからずに使っている人のための手引書

公開鍵と秘密鍵を生成する

任意のパスフレーズを設定し、公開鍵と秘密鍵を生成する。

$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/kawatsu/.ssh/id_rsa): # デフォルトのファイル名を生成するためreturn Enter passphrase (empty for no passphrase): # パスフレーズを指定しない場合はreturn Enter same passphrase again: # 同上 クライアントからサーバーへ公開鍵をコピーする

生成した公開鍵をscpコマンドで安全に接続先のユーザーディレクトリへコピーする。

$ scp ~/.ssh/id_rsa.pub test@aaa.bbb.ccc.ddd:~ # ユーザー名@IPアドレス:ディレクトリ サーバーで公開鍵を設置する

サーバーに作業ユーザーでログインし、公開鍵がクライアントからコピーされているか確認する。

$ ssh test@aaa.bbb.ccc.ddd # ユーザー名@IPアドレス $ ls | grep id_rsa.pub

ディレクトリを作成し、公開鍵を設置する。

# ディレクトリを作成 $ mkdir ~/.ssh # ディレクトリの権限をユーザーのみrwxに制限 $ chmod 700 ~/.ssh # 公開鍵を設置する $ cat ~/id_rsa.pub >> .ssh/authorized_keys # ディレクトの権限をユーザーのみrw-に変更 $ chmod 600 ~/.ssh/authorized_keys # ユーザーディレクトリのコピーした秘密鍵を削除する $ rm id_rsa.pub configファイルを設定する

クライアントでのSSHの設定ファイルを追加することでSSH接続の簡単にする。

$ vim ~/.ssh/config ~/.ssh/config Host testServer # 任意の名前 HostName aaa.bbb.ccc.ddd # IPアドレスまたはFQDN User test # ログインするユーザー Port 22 # ポート番号 IdentityFile ~/.ssh/id_rsa # 生成した秘密鍵を指定する

設定したHostNameを指定してSSH接続を行う。

$ ssh testServer

参考


  1. -mオプションのマニュアルには「デフォルトでは、ホームディレクトリを作らず、ファイルのコピーもしない。」とあるが/etc/login.defsファイルにデフォルトでCREATE_HOMEがyesになっているため/home/testが作成される(参考21a9.png

Source: Linuxタグが付けられた新着投稿

   ITアンテナトップページへ
情報処理/ITの話題が沢山。