vCSA のコンソールに SSH で接続する際、大体の場合は以下で接続。
$ ssh root@【vCSA の IP or FQDN】
VMware vCenter Server 7.0.1.00200
Type: vCenter Server with an embedded Platform Services Controller
root@【vCSA の IP or FQDN】's password:
Connected to service
* List APIs: "help api list"
* List Plugins: "help pi list"
* Launch BASH: "shell"
Command>
とは言え。。。
と、通常の運用だとあまりやらない運用(ですよね?)。
大抵は root は許可せず、一般ユーザで公開鍵認証してsudo
が標準。
なので、vCSA でも公開鍵認証でログインできるようにしてみる。
対象環境
vCSA 7.0.1
(VMware Photon OS 3.0 / PHOTON_BUILD_NUMBER=11dd065)
接続用ユーザを作る
まずは vCSA に root で入り、ログイン用の一般ユーザを作る。
root@vcsa03 [ ~ ]# useradd -g users -s /bin/bash -m mirie
シェルは何も指定しないと/bin/appliancesh
がデフォルトシェルになるので、 シェル指定はお好みで(と言ってもsh
かbash
ぐらいしか入ってないけど)。
useradd -D
# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/appliancesh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
root@vcsa03 [ ~ ]# grep mirie /etc/passwd
mirie:x:1047:100::/home/mirie:/bin/bash
パスワードも設定。
root@vcsa03 [ ~ ]# passwd mirie
New password:
Retype new password:
passwd: password updated successfully
sudo
は入っているので sudoers
を編集して sudo
できるようにしておく。
root@vcsa03 [ ~ ]# visudo
# 末尾に「mirie ALL=(ALL) ALL」みたいな感じで足しておく。
公開鍵を作成して設置
公開鍵を作成する。
以下はクライアント PC 環境から(今回の場合は WSL2 上の Ubuntu)
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mirie/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mirie/.ssh/id_rsa
Your public key has been saved in /home/mirie/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:nGUTBVzHn9PmsUY8JvRbY7TC2SOTj0olPPtQpiEgU4k mirie@HAKUTAKA
The key's randomart image is:
+---[RSA 4096]----+
| o...o+o.. |
| E o .. o.. |
| o . = o B.+|
| . = * % /=|
| S . X @oX|
| = . =.|
| . + . |
| . . |
| |
+----[SHA256]-----+
$ ls ~/.ssh/
id_rsa id_rsa.pub known_hosts
公開鍵を vCSA へ転送し登録する。
$ ssh-copy-id -i ~/.ssh/id_rsa.pub mirie@【vCSA の IP or FQDN】
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/mirie/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
VMware vCenter Server 7.0.1.00200
Type: vCenter Server with an embedded Platform Services Controller
mirie@【vCSA の IP or FQDN】's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'mirie@【vCSA の IP or FQDN】'"
and check to make sure that only the key(s) you wanted were added.
これで SSH すればパスワードを聞かれることなくログインできる(はず)。
$ ssh 192.168.0.63
VMware vCenter Server 7.0.1.00200
Type: vCenter Server with an embedded Platform Services Controller
Last login: Mon Jan 4 13:28:10 2021 from 192.168.0.12
mirie@vcsa03 [ ~ ]$
sshd の設定を変える前に必ず公開鍵認証が通ることを確認しておきましょう。。。
(←確認せずに設定変えて SSH ログインできなくなった人)
root ログイン / パスワード認証を封じる
再び vCSA 側にログインして sshd の設定を変えておく。
root@vcsa03 [ ~ ]# vi /etc/ssh/sshd_config
# 34行目辺りに以下を足しておく
PermitRootLogin no
# 60行目辺りに以下を足しておく
PasswordAuthentication no
書き換えたら sshd を再起動して祈る。
root@vcsa03 [ ~ ]# systemctl restart sshd
これで root ログイン/パスワード認証はできなくなる。
$ ssh root@【vCSA の IP or FQDN】
VMware vCenter Server 7.0.1.00200
Type: vCenter Server with an embedded Platform Services Controller
root@【vCSA の IP or FQDN】: Permission denied (publickey).
# 秘密鍵を一時的に退避
$ ssh 【vCSA の IP or FQDN】
VMware vCenter Server 7.0.1.00200
Type: vCenter Server with an embedded Platform Services Controller
mirie@【vCSA の IP or FQDN】: Permission denied (publickey).
vCSA と言えど、基本的にはただの Linux(Photon OS) なので、
やり方は他の Linux と同じでした。
(違うのはuseradd
でデフォルトシェルがappliancesh
になるぐらい?)
あんまりやってないのは検証してないからか面倒なだけなのか…
おまけ:root になる
一般ユーザでログイン後、su
で root になれます。
mirie@vcsa03 [ ~ ]$ su -
Password:
Password:
Connected to service
* List APIs: "help api list"
* List Plugins: "help pi list"
* Launch BASH: "shell"
Command> shell
Shell access is granted to root
root@vcsa03 [ ~ ]#
sudo -s
でも root になれますが、この場合appliancesh
が出てこない。
mirie@vcsa03 [ ~ ]$ sudo -s
[sudo] password for mirie
root [ /home/mirie ]#
これ自体はsudo -s
の挙動通りと言えば挙動通り。
sudo -s
やsu
のオプション周りの話は結構深いので割愛。追っかけてみると面白いかと…