CentOSでユーザー作成とssh

2018-05-16

環境

  • サーバー: CentOS7.5.1804
  • クライアント: macOS10.13.6

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

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

useradd test
passwd test

ユーザーが追加されていることを確認する。

cat /etc/passwd

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

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

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 モジュールを有効化する。

# 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
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が作成される(参考)

Web系ソフトウェアエンジニアの備忘録

Contact: 3982ne@gmail.com