はじめに
IBM Cloudで仮想サーバーを払い出した後、サーバー上で実施するべき基本操作についてまとめてみました。全ての操作が必須なわけではないので、一部省いて実施いただいても大丈夫です。
※rootユーザー用の秘密鍵の保存を含む、仮想サーバーの注文作業については本記事では扱いません。予めローカルに秘密鍵がダウンロードされた状態で始めてください。
1. サーバーに接続する
ローカルPCから接続する場合、XX.XX.XXはサーバーの浮動IPアドレス
まずサーバーへ接続が通るか確認する。
user1@AAA-PF3473C7:~$ ping XX.XX.XX.XX
PING 10.244.0.5 (10.244.0.5) 56(84) bytes of data.
64 bytes from 10.244.0.5: icmp_seq=1 ttl=62 time=36.1 ms
^C
--- 10.244.0.5 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6008ms
rtt min/avg/max/mdev = 29.848/33.315/38.754/3.124 ms
秘密鍵を使用して仮想サーバーへSSHで接続する。
user1@AAA-PF3473C7:~$ ssh -i <秘密鍵までのパス> root@XX.XX.XX.XX
The authenticity of host 'XX.XX.XX.XX (XX.XX.XX.XX)' can't be established.
ED25519 key fingerprint is SHA256:Gv5GpBrMgoKaWIzsl6xZAvydK3ZNn6F7gDAOeBva/wA.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
2. サーバーをアップデートする
[root@vsi ~]# yum repolist
Updating Subscription Management repositories.
repo id repo name
ansible-2-for-rhel-8-x86_64-rpms Red Hat Ansible Engine 2 for RHEL 8 x86_64 (RPMs)
rhel-8-for-x86_64-appstream-eus-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream - Extended Update Support (RPMs)
rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-eus-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Extended Update Support (RPMs)rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
rhel-8-for-x86_64-supplementary-eus-rpms Red Hat Enterprise Linux 8 for x86_64 - Supplementary - Extended Update Support (RPMs)
rhel-8-for-x86_64-supplementary-rpms Red Hat Enterprise Linux 8 for x86_64 - Supplementary (RPMs)
[root@vsi-ft-ops ~]# yum update
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 75 MB/s | 47 MB 00:00
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) 9.3 MB/s | 53 MB 00:05
・
・
・
3. サーバーのタイムゾーンを変更する
[root@vsi ~]# date
Thu Mar 30 20:28:09 EDT 2023
[root@vsi ~]# timedatectl set-timezone Asia/Tokyo
[root@vsi ~]# date
Fri Mar 31 09:29:27 JST 2023
4. SELinux のステータスをチェック
[root@vsi~]# getenforce
Permissive
Enforce
だとサーバー使用時に考慮が必要になる。Permissive
1なら気にせず進んでOK。
5. sudoが使えるグループを作成する
グループIDとして使える番号を確認した後、sudo
というグループを作成する。
[root@vsi ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
・
・
・
vpcuser:x:1000: # 1000までグループIDが使われている
[root@vsi ~]# groupadd sudo -g 1001 # グループIDとして1001を使用する
visudo
を実行し、110行目のコメントアウトを外してwheel
をsudo
に変更する。
※行番号を表示する場合は、ノーマルモードで:set number
と入力する。
[root@vsi ~]# visudo
6. 作業ユーザーを追加する
ユーザーIDとして使える番号を確認した後、sudoグループ
に属するhoge1
というユーザーを作成する。
[root@vsi ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
・
・
・
vpcuser:x:1000:1000:VPC Cloud User:/home/vpcuser:/bin/bash # 1000までユーザーIDが使われている
[root@vsi ~]# useradd -g sudo hoge1 # sudoグループにユーザーを追加
[root@vsis ~]# ls /home
hoge1 vpcuser # ホームに作成したユーザーのディレクトリができていることを確認
hoge1
でsudo
を使用するとroot権限に切り替わることを確認。
[root@vsi ~]# su hoge1
[hoge1@vsi ~]$ sudo whoami
root
[hoge1@vsi-ft-ops ~]$ whoami
hoge1
hoge1
をdeveloperグループ
に追加。-aG
で他のグループから削除されることなくGで指定された補助グループに追加できる。
[hoge1@vsi ~]$ groupadd developer -g 1002
[hoge1@vsi ~]$ sudo usermod -aG developer hoge1
7. 作業ユーザーでSSH接続できるようにする
作業ユーザー用の秘密鍵を発行し、公開鍵の名前をauthorized_keys
に変更する。
[hoge1@vsi root]$ ssh-keygen # 作業ユーザー用の秘密鍵を発行
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge1/.ssh/id_rsa):
Created directory '/home/hoge1/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hoge1/.ssh/id_rsa.
Your public key has been saved in /home/hoge11/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:25xf9wyWl2XeoSAdilyYtonhMdpnB8pR/cwawzKWWIE hoge1@vsi
The key's randomart image is:
+---[RSA 3072]----+
| .oo |
| E..o. |
| =o=o.+. |
| =.X=*+o+. |
| . *.BS++o .o|
| o .=... .+=|
| . + .=.=|
| . o =.|
| . o|
+----[SHA256]-----+
[hoge1@vsi root]$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
秘密鍵の中身を表示し、ローカルに保存する。
[hoge1@vsi root]$ cat ~/.ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
・
・
・
-----END OPENSSH PRIVATE KEY-----
8. 作業ユーザーでSSH接続をする
秘密鍵のパーミッションによってエラーが出て接続できない場合は、パーミッションを600
に変更する。
user1@AAA-PF3473C7:~$ ssh -i <7で保存した秘密鍵のパス> hoge1@XX.XX.XX.XX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '<7で保存した秘密鍵のパス>' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/<7で保存した秘密鍵のパス>": bad permissions
hoge1@XX.XX.XX.XX: Permission denied (publickey).
# 鍵ファイルの権限を0600に変更する
user1@AAA-PF3473C7:~$ ls -l <7で保存した秘密鍵のパス>
-rwxr-xr-x 1 user1 user1 2638 Mar 31 10:33 <7で保存した秘密鍵>
user1@AAA-PF3473C7:~$ chmod 0600 <7で保存した秘密鍵>
user1@AAA-PF3473C7:~$ ls -l <7で保存した秘密鍵>
-rw------- 1 user1 user1 2638 Mar 31 10:33 <7で保存した秘密鍵>
# SSH接続する
user1@AAA-PF3473C7:~$ ssh -i <7で保存した秘密鍵のパス> hoge1@XX.XX.XX.XX
Activate the web console with: systemctl enable --now cockpit.socket
Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Tue Oct 10 08:21:40 2023 from YY.YY.YY.YY
-
SELinuxは有効だがアクセス制御は行わず、禁止操作が行われた場合はログにだけ残す状態。 ↩