You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
4.2 KiB
Markdown

2 years ago
# Authentication
1 year ago
PiKVM OS is based on a regular Linux system, so everything about authorization in this OS is also true for PiKVM.
It comes with the following default passwords:
2 years ago
* **Linux admin** (SSH, console, etc.): user `root`, password `root`.
2 years ago
* **PiKVM Web Interface, API, VNC...**: user `admin`, password `admin`, no 2FA code.
2 years ago
2 years ago
**These are two separate entities with independent accounts.**
2 years ago
1 year ago
Also there is another special Linux user: `kvmd-webterm`.
1 year ago
It can't be used for login or remote access to PiKVM OS and has the non-privileged rights in the OS.
1 year ago
Password access and `sudo` is disabled for it. It is used only for launching the `Web Terminal`.
These restrictions are set for security reasons.
1 year ago
-----
## Root access in the Web Terminal
As mentioned above, the `Web Terminal` runs under user `kvmd-webterm` with disabled `sudo` and password access.
However, most PiKVM administration commands require the `root` access.
1 year ago
To obtain it in the `Web Terminal`, type `su -` and then enter the `root` user password:
1 year ago
```
[kvmd-webterm@pikvm ~]$ su -
...
[root@pikvm kvmd-webterm]#
```
1 year ago
??? tip "Disabling the `Web Terminal`"
1 year ago
Sometimes the actual owner of a PiKVM device and the user who is allowed to use it are different people.
So you may want to disable console access from the Web UI. To do this, use the following:
```
[root@pikvm ~]# rw
[root@pikvm ~]# systemctl disable --now kvmd-webterm
[root@pikvm ~]# ro
```
For your own access to PiKVM OS, you will still have SSH.
1 year ago
-----
2 years ago
## Changing the Linux password
2 years ago
```
1 year ago
[root@pikvm ~]# rw
[root@pikvm ~]# passwd root
[root@pikvm ~]# ro
2 years ago
```
1 year ago
-----
2 years ago
## Changing the KVM password
2 years ago
```
1 year ago
[root@pikvm ~]# rw
[root@pikvm ~]# kvmd-htpasswd set admin
[root@pikvm ~]# ro
2 years ago
```
1 year ago
Please note that `admin` is a name of a default user. It is possible to create several different users
2 years ago
with different passwords to access the Web UI, but keep in mind that they all have the same rights:
```
# kvmd-htpasswd set <user> # Sets a new user with password
1 year ago
#
2 years ago
# kvmd-htpasswd del <user> # Removes/deletes a user
```
1 year ago
-----
2 years ago
## Two-factor authentication
This is a new method of strengthening the protection of PiKVM, available since `KVM >= 3.196`.
It is strongly recommended to enable it if you expose the PiKVM in the big and scary Internet.
!!! warning
1 year ago
Using 2FA eliminates the possibility of using [IPMI](ipmi) and [VNC with vncauth](vnc) (both disabled by default).
It also slightly affects the use of [API](api.md) and regular VNC with user/password, read below.
Please note that 2FA does not concern the Linux OS access for the `root` user, so take care of a strong password
for it for SSH access (or setup the [key access](https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server)).
??? example "Step by step: Enabling 2FA on PiKVM"
2 years ago
1 year ago
1. Update OS and reboot:
2 years ago
1 year ago
```
[root@pikvm ~]# rw
[root@pikvm ~]# pacman -Syu
[root@pikvm ~]# reboot
```
2 years ago
1 year ago
2. **Make sure that NTP is running otherwise you will not be able to access** (`timedatectl` command).
The timezone doesn't matter.
2 years ago
1 year ago
3. Install the `Google Authenticator` app to your mobile device
([iOS](https://apps.apple.com/us/app/google-authenticator/id388497605),
[Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2)). It will generate one-time access codes.
2 years ago
1 year ago
4. Create a secret for one-time codes on PiKVM:
```
[root@pikvm ~]# rw
[root@pikvm ~]# kvmd-totp init
[root@pikvm ~]# ro
```
2 years ago
1 year ago
5. Run the `Google Authenticator` and scan the QR code.
2 years ago
1 year ago
6. Now, on the PiKVM login page, you will need to add 6 digits to the `2FA code` field.
2 years ago
1 year ago
All Web UI users will be required to enter a one-time password on login.
In other words, **the secret is the same for all users**.
2 years ago
2 years ago
!!! note
1 year ago
With 2FA for API or VNC authentication, you will need to append the one-time code to the password without spaces.
2 years ago
That is, if the password is `foobar` and the code is `123456`, then you need to use `foobar123456` as the password.
2 years ago
1 year ago
To view the current QR code of the secret use command `kvmd-totp show`.
2 years ago
1 year ago
To disable 2FA and remove the secret, use command `kvmd-totp del`.