RockyLinux8 vps環境設定1) TeraTermからログインするまで
https://qiita.com/naga_kt/items/f8e7fa256a60b63e97b3
の続き。WebArena Indigo(RockyLinux8.4)及びKagoya(RockyLinux8.5)での環境設定について述べる。
デフォルトのユーザ名、ディレクトリ名では使いにくいので新しいユーザを設定する。
TeraTermからデフォルトユーザとしてログインして以下を行っていく。
ユーザの追加
デフォルトのユーザ(WebArena Indigoではrocky、Kagoyaではcloud-user)以外に新たなユーザを追加する。
useraddでユーザを追加して、passwdでパスワードを与える。
useraddで以下のように行なった。
# cd /home
# useradd -d /home/xxxxxxxx -g users xxxxxxxx
$ ls -lrt
total 0
drwx------ 3 cloud-user cloud-user 4096 Sep 14 09:00 cloud-user
drwx------ 2 xxxxxxxx users 4096 Sep 14 10:54 xxxxxxxx
オプション-dは追加ディレクトリ名であり、ユーザ名と同じにした。
オプション-gではグループ名を指定した。
passwdで以下のように行なった。
# passwd xxxxxxxx
Changing password for user xxxxxxxx.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
ディレクトリの設定は751になるようにしておく。
# cd /home
# chmod 751 xxxxxxxx
ユーザに管理者権限を与える
新しく作ったユーザに管理者権限を与える。そうすればsudoをパスワード入力なしに使うことができる。
ユーザの権限が指定されている/etc/sudoersをvisudoコマンドで編集していくが、その前にバックアップを取っておく。
# cd /etc/
# ls -lrt sudoers
-r--r-----. 1 root root 4328 Nov 4 2021 sudoers
# cp -p sudoers sudoers-org
# visudo
ユーザ名xxxxxxxxを以下のように登録する。
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
xxxxxxxx ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
%xxxxxxxx ALL=(ALL) NOPASSWD: ALL
これでパスワードなしでsudoを実行できる。
環境設定をする間はこのようにしておいて、環境設定が終わったらここの設定を変えるようにする。
.sshディレクトリのコピー
新たに作ったユーザのディレクトリにはWebArena Indigoならrockyディレクトリの直下にあった.sshがない。これをコピーして所有者・グループを変更しておく。
Kagoyaでは/home/cloud-userの直下に.sshがある
cloud-user直下の.sshの初期状態が以下のようになっている。
# ls -lrta .ssh/
total 12
drwx------ 3 cloud-user cloud-user 4096 Sep 14 09:00 ..
-rw------- 1 cloud-user cloud-user 381 Sep 14 09:00 authorized_keys
drwx------ 2 cloud-user cloud-user 4096 Sep 14 09:00 .
新たに作ったディレクトリの中は以下のようになっていて.sshディレクトリは入っていない。
# sudo -i -u xxxxxxxx
$ ls -lrta
total 20
-rw-r--r-- 1 xxxxxxxx users 376 Jul 27 2021 .bashrc
-rw-r--r-- 1 xxxxxxxx users 141 Jul 27 2021 .bash_profile
-rw-r--r-- 1 xxxxxxxx users 18 Jul 27 2021 .bash_logout
drwxr-x--x 2 xxxxxxxx users 4096 Sep 14 10:54 .
drwxr-xr-x. 14 root root 4096 Sep 14 10:55 ..
cloud-userから.sshディレクトリをコピーして所有者・グループを変える。
$ sudo cp -p -r /home/cloud-user/.ssh .
$ ls -lrta
total 24
-rw-r--r-- 1 xxxxxxxx users 376 Jul 27 2021 .bashrc
-rw-r--r-- 1 xxxxxxxx users 141 Jul 27 2021 .bash_profile
-rw-r--r-- 1 xxxxxxxx users 18 Jul 27 2021 .bash_logout
drwx------ 2 cloud-user cloud-user 4096 Sep 14 09:00 .ssh
drwxr-xr-x. 14 root root 4096 Sep 14 10:55 ..
drwxr-x--x 3 xxxxxxxx users 4096 Sep 14 11:23 .
$ sudo ls -lrta .ssh/
total 12
-rw------- 1 cloud-user cloud-user 381 Sep 14 09:00 authorized_keys
drwx------ 2 cloud-user cloud-user 4096 Sep 14 09:00 .
drwxr-x--x 3 xxxxxxxx users 4096 Sep 14 11:23 ..
$ sudo chown -R xxxxxxxx .ssh
$ ls -lrta
total 24
-rw-r--r-- 1 xxxxxxxx users 376 Jul 27 2021 .bashrc
-rw-r--r-- 1 xxxxxxxx users 141 Jul 27 2021 .bash_profile
-rw-r--r-- 1 xxxxxxxx users 18 Jul 27 2021 .bash_logout
drwx------ 2 xxxxxxxx cloud-user 4096 Sep 14 09:00 .ssh
drwxr-xr-x. 14 root root 4096 Sep 14 10:55 ..
drwxr-x--x 3 xxxxxxxx users 4096 Sep 14 11:23 .
$ ls -lrta .ssh/
total 12
-rw------- 1 xxxxxxxx cloud-user 381 Sep 14 09:00 authorized_keys
drwx------ 2 xxxxxxxx cloud-user 4096 Sep 14 09:00 .
drwxr-x--x 3 xxxxxxxx users 4096 Sep 14 11:23 ..
ポート番号をデフォルトの22番から変更
ポート番号がデフォルトの22番のままだと攻撃を受けやすいので適当な値に変えておく。
sshd設定ファイルを変更する。変更前にバックアップは取っておく。
$ cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config-org
$ sudo vi /etc/ssh/sshd_config
ここでPortの数値を以下のようにする。
#Port 22
Port zzzzz
適切に変更されているかどうかは以下のコマンドでエラーが表示されないことで確認できる。
$ sudo sshd -t
ポート番号変更のためのsshd再起動【WebArena Indigo(RockyLinux8.4)の場合】
しかし、WebArena Indigoの場合は、これだけではsshdを再起動してもエラーになる。
$ sudo systemctl restart sshd
Job for sshd.service failed because the control process exited with error code.
See "systemctl status sshd.service" and "journalctl -xe" for details.
これを解決するには、SELinuxのセキュリティ設定も変更する。以下のようにする。
$ sudo semanage port -l | grep ssh
ssh_port_t tcp 22
$ sudo semanage port -a -t ssh_port_t -p tcp zzzzz
$ sudo systemctl restart sshd$ sudo semanage port -l | grep ssh
ssh_port_t tcp zzzzz, 22
$ sudo systemctl restart sshd
これでsshdが再起動できて、ポート番号も変更できた。
ポート番号変更のためのsshd再起動【Kagoya(RockyLinux8.5)の場合】
Kagoyaの場合は、再起動の前にファイアウォールの設定をしないといけない。
$ sudo firewall-cmd --add-port=zzzzz/tcp --zone=public --permanent
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-ports --zone=public
zzzzz/tcp
以下でsshdが再起動できて、ポート番号も変更できる。
$ sudo systemctl restart sshd
TeraTermからの接続
TeraTermから新しいユーザ名でアクセスする。「SSH認証」画面でユーザ名とパスワードを新たに設定したものにすればいい。
TeraTermマクロを用いての接続
TeraTermマクロをテキストファイルに以下のように書いて、ファイルタイプをttlにする。ttlをTeraTermに関連付けすれば、ダブルクリックするだけで立ち上げることができる。
username = 'xxxxxxxx'
hostname = 'yyy.yyy.yyy.yyy'
userpasswd = '●●●●●●●●'
portnum = 'zzzzz'
userkeyfile = 'C:\Users\y_kat\Documents\webarena\key\private_key.txt'
msg = hostname
strconcat msg ':'
strconcat msg portnum
strconcat msg ' /ssh /auth=publickey /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg userpasswd
strconcat msg ' /keyfile='
strconcat msg userkeyfile
connect msg
RockyLinux8 vps環境設定3) 他のサーバとのssh接続
https://qiita.com/naga_kt/items/f887ee7f71453ac25255
に続く。
参考記事
CentOS
Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法
https://proengineer.internous.co.jp/content/columnfeature/8552
CentOS
CentOSでユーザがsudoを使えるよう設定する
https://www.suzu6.net/posts/144-centos-su-user/
Indigo VPSでユーザーを追加したのに公開鍵で接続できなかった原因
https://itkansoku.hatenablog.com/entry/202106-Indigo-VPS-SSH-access-error-lack-of-authorized-keys
【linux】sshのポートを変える(22番から変更)
https://www.softel.co.jp/blogs/tech/archives/1516
RockyLinux
Rocky Linux sshのポートを変更する
https://mebee.info/2021/07/15/post-38718/
centos
【CentOS7】SSH(sshd)がエラーで起動しない場合の解決方法
https://claypier.com/centos7-sshd-error/
【Tera Term】鍵認証方式でのSSH自動ログインマクロ
https://humo-life.net/memo/doku.php?id=%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2:teraterm:%E9%8D%B5%E8%AA%8D%E8%A8%BC%E6%96%B9%E5%BC%8F%E3%81%A7%E3%81%AEssh%E8%87%AA%E5%8B%95%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%83%9E%E3%82%AF%E3%83%AD