I recently installed a fresh instance of Proxmox VE on my Beelink S12 Mini home server. These are the first steps I take whenever I set up a new machine or server.
Set up SSH key authentication
It can be cumbersome to remember the password for multiple server, and using an SSH key for authentication also offers better security.
I sent the SSH public key to the server, which is as easy as:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.4.100
Then, I added a new record to the ~/.ssh/config file on my machine and set it to use the IdentityFile I sent to the server.
Host beelink
HostName 192.168.4.100
User root
Port 22
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa
After the ssh config is set up, use it to connect to the machine:
ssh beelink
If everything’s set up correctly, it should not prompt for either a username or password.
Disable logins using password
Connect to the machine, and edit the /etc/ssh/sshd_config file. Find the line containing PasswordAuthentication, it may need to be uncommented as well. Update the line to say:
PasswordAuthentication no
Then save and exit the editor. Restart the ssh service for the changes to take effect:
systemctl restart ssh
Run the post-installation script
There’s a fantastic Proxmox VE Post Install script by the Proxmox VE Helper-Scripts project. This lets us choose to:
- Disable the ‘pve-enterprise’ repository
- Enable the ‘pve-no-subscription’ repository
- Correct the ‘ceph package repositories’
- Add the ‘pvetest’ repository
- Disable subscription nag
- Enable high availability
To run the script, visit the PVE Web UI, and in the treeview on the left select the Datacenter -> Node (mine is called beelink). Select the Shell option on the sidebar to open a shell on the machine.

Paste this command in the shell to run the post-installation script:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"
After the script is completed, reboot the machine.
Install avahi daemon
The Avahi daemon implements zero-configuration networking (zeroconf) for Linux. It lets us find the server on the local network by its hostname instead of the IP address.
By default, Linux systems without Avahi cannot resolve local hostnames, making it necessary to use IP addresses to access devices on the same network.
For example, attempting to ping the server by its hostname results in an error:
~ ping beelink.local
ping: cannot resolve beelink.local: Unknown host
To resolve the hostname, connect to the machine, and install the Avahi daemon using:
apt install avahi-daemon
After the installation finishes, the service will be enabled. The server should now be able to resolve local hostnames, allowing us to ping it by its hostname:
~ ping beelink.local
PING beelink.local (192.168.4.100): 56 data bytes
64 bytes from 192.168.4.100: icmp_seq=0 ttl=64 time=8.551 ms

Leave a Reply