WebArena Indigo 環境設定1)TeraTermからログインするまで
https://qiita.com/naga_kt/items/0dd2f2e80bfd7a4666f8
の続き。
デフォルトのユーザ名、ディレクトリ名では使いにくいので新しいユーザを設定する。
TeraTermからデフォルトユーザとしてログインして以下を行っていく。
ユーザの追加(CentOS7/RockyLinux8)
デフォルトのcentosまたはrocky以外に新たなユーザを追加する。
useraddでユーザを追加して、passwdでパスワードを与える。
useraddで以下のように行なった。
$ sudo useradd -d /home/xxxxxxxx -g users xxxxxxxx
$ cd ..
$ ls -lrt
total 0
drwx------. 7 centos centos 156 Dec 14 04:40 centos
drwx------. 2 xxxxxxxx users 62 Dec 14 05:39 xxxxxxxx
オプション-dは追加ディレクトリ名であり、ユーザ名と同じにした。
オプション-gではグループ名を指定した。
passwdで以下のように行なった。
$ sudo passwd xxxxxxxx
Changing password for user xxxxxxxx.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
ディレクトリの設定は751になるようにしておく。
$ sudo su –
# cd /home
# chmod 751 xxxxxxxx
ユーザの追加(Ubuntu20.04LTS)
デフォルトのubuntu以外に新たなユーザを追加する。
ubuntuではuseraddでユーザを追加するとディレクトリが追加できない。
adduserコマンドを用いて以下のように行なった。
$ sudo adduser --gid 100 xxxxxxxx
Adding user `xxxxxxxx' ...
Adding new user `xxxxxxxx' (1001) with group `users' ...
Creating home directory `/home/xxxxxxxx' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for xxxxxxxx
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
$ cd ..
$ ls -lrt
total 0
drwx------. 7 ubuntu ubuntu 4096 Apr 11 07:13 ubuntu
drwx------. 2 xxxxxxxx users 4096 Apr 12 01:47 xxxxxxxx
オプション--gidでユーザIDを100と指定してグループをusersにした。
ディレクトリの設定は751になるようにしておく。
$ sudo su –
# cd /home
# chmod 751 xxxxxxxx
ユーザに管理者権限を与える(CentOS7/RockyLinux8)
新しく作ったユーザに管理者権限を与える。そうすればsudoをパスワード入力なしに使うことができる。
ユーザの権限が指定されている/etc/sudoersをvisudoコマンドで編集していくが、その前にバックアップを取っておく。
# cd /etc/
# ls -lrt sudoers
-r--r-----. 1 root root 4358 Jun 21 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を実行できる。
環境設定をする間はこのようにしておいて、環境設定が終わったらここの設定を変えるようにする。
ユーザに管理者権限を与える(Ubuntu20.04LTS)
Ubuntuでは設定の編集を行なう前にエディタの設定を以下のようにしてvimに変更しておく。
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
ユーザの権限が指定されている/etc/sudoersをvisudoコマンドで編集する。
# cd /etc/
# cp -p sudoers sudoers-org
# visudo
ユーザ名xxxxxxxxを以下のように登録する。
# User privilege specification
root ALL=(ALL:ALL) ALL
xxxxxxxx ALL=(ALL:ALL) ALL
これでパスワードなしでsudoを実行できる。
.sshディレクトリのコピー
新たに作ったユーザのディレクトリにはcentos/rocky/ubuntuディレクトリの直下にあった.sshがない。これをコピーして所有者・グループを変更しておく。
centos直下の.sshの初期状態が以下のようになっている。
$ cd ~/.ssh/
$ ls -lrt
total 8
-rw-------. 1 centos centos 405 Dec 10 06:29 authorized_keys
-rw-r--r--. 1 centos centos 403 Dec 10 07:17 known_hosts
新たに作ったディレクトリの中は以下のようになっていて.sshディレクトリは入っていない。
#cd /home/xxxxxxxx
#ls -lrta
total 12
-rw-r--r--. 1 xxxxxxxx users 231 Apr 11 2018 .bashrc
-rw-r--r--. 1 xxxxxxxx users 193 Apr 11 2018 .bash_profile
-rw-r--r--. 1 xxxxxxxx users 18 Apr 11 2018 .bash_logout
drwxr-xr-x. 4 root root 38 Dec 14 05:39 ..
drwx------. 3 xxxxxxxx users 74 Dec 14 06:00 .
centosから.sshディレクトリをコピーして所有者・グループを変える。
#cp -p -r /home/centos/.ssh/ .
#ls -lrta
total 12
-rw-r--r--. 1 xxxxxxxx users 231 Apr 11 2018 .bashrc
-rw-r--r--. 1 xxxxxxxx users 193 Apr 11 2018 .bash_profile
-rw-r--r--. 1 xxxxxxxx users 18 Apr 11 2018 .bash_logout
drwx------. 2 centos centos 125 Dec 13 07:47 .ssh
drwxr-xr-x. 4 root root 38 Dec 14 05:39 ..
drwx------. 3 xxxxxxxx users 74 Dec 14 06:00 .
#ls -lrta .ssh/
total 24
-rw-------. 1 centos centos 405 Dec 10 06:29 authorized_keys
-rw-r--r--. 1 centos centos 577 Dec 10 10:16 known_hosts
drwx------. 2 centos centos 125 Dec 13 07:47 .
drwx------. 3 xxxxxxxx users 74 Dec 14 06:00 ..
#chown -R xxxxxxxx .ssh
#ls -lrta
total 12
-rw-r--r--. 1 xxxxxxxx users 231 Apr 11 2018 .bashrc
-rw-r--r--. 1 xxxxxxxx users 193 Apr 11 2018 .bash_profile
-rw-r--r--. 1 xxxxxxxx users 18 Apr 11 2018 .bash_logout
drwx------. 2 xxxxxxxx centos 125 Dec 13 07:47 .ssh
drwxr-xr-x. 4 root root 38 Dec 14 05:39 ..
drwx------. 3 xxxxxxxx users 74 Dec 14 06:00 .
#ls -lrta .ssh/
total 24
-rw-------. 1 xxxxxxxx centos 405 Dec 10 06:29 authorized_keys
-rw-r--r--. 1 xxxxxxxx centos 577 Dec 10 10:16 known_hosts
drwx------. 2 xxxxxxxx centos 125 Dec 13 07:47 .
drwx------. 3 xxxxxxxx users 74 Dec 14 06:00 ..
ポート番号をデフォルトの22番から変更(CentOS7/RockyLinux8)
ポート番号がデフォルトの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を再起動してもエラーになる。
$ 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が再起動できて、ポート番号も変更できた。
ポート番号をデフォルトの22番から変更(Ubuntu20.04LTS)
Ubuntuではsshd設定ファイルの変更とリスタートだけでいい。
$ cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config-org
$ sudo vi /etc/ssh/sshd_config
ここでPortの数値を以下のようにする。
#Port 22
Port zzzzz
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
WebArena Indigo 環境設定3)他のサーバとのssh接続
https://qiita.com/naga_kt/items/eadb6cb39f7f2fc2216d
に続く。
参考記事
CentOS
Linuxのユーザー管理 ユーザーを新規作成・変更・削除する方法
https://proengineer.internous.co.jp/content/columnfeature/8552
Ubuntu
Ubuntuでユーザーを追加、およびsudo権限を付与する
https://hibiki-press.tech/dev-env/ubuntu/adduser-gpasswd/5086
CentOS
CentOSでユーザがsudoを使えるよう設定する
https://www.suzu6.net/posts/144-centos-su-user/
Ubuntu
Ubuntuで最初にやること
https://qiita.com/shoji-kai/items/1145ed46734dc1512a79
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