環境
- サーバー: CentOS7.5.1804
- クライアント: macOS10.13.6
ユーザーの作成とパスワードの設定
useradd
コマンドでユーザーを作成1し、passwd
コマンドでパスワードを設定する。
useradd test
passwd test
ユーザーが追加されていることを確認する。
cat /etc/passwd
ユーザーに管理者権限を設定する
ユーザーの所属グループにwheelグループを追加することで、ユーザーがsudo
コマンドで管理者権限を必要とするコマンドを実行可能にする。
-
wheelグループとは
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 モジュールを有効化する。
# 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-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