We recently updated Multipass to version 1.9 and with it, there is now a way to authorize clients to connect to the Multipass service for better security and allow users not part of an admin group to use the multipass client.
We tried to put in logic to make it seamless for previous installs that upgrade to 1.9 without needing any intervention, but this seems to not be the case as evidence by this, this, and this.
If you stumble here trying to find a solution, first, apologies for your troubles, and second, this post should hopefully help you fix the issue and be able to continue to use Multipass. I’ve been looking at the code over and over and have yet to figure out what is triggering this issue…
I have implemented the recommendation on my Mac but I the solution doesn’t work for me:
user@iMac ~ % multipass list
list failed: The client is not authenticated with the Multipass service.
Please use 'multipass authenticate' before proceeding.
Sorry for your troubles. Is the Multipass tray icon client still running when you do the steps outlined above? If so, quit that and then do those steps and see if that helps.
@townsend I hope you don’t mind me asking this here.
I am on macOS, I have a shell script that I run with sudo, which provisions a local working directory, and some other OS-level things (hence requiring sudo) and then runs multipass exec to do further provisioning/setup on the multipass instance.
At the point of running multipass exec I get the “client is not authenticated with the Multipass service” error. However, I can run the command as a normal use from the macOS terminal. This seems to be related to the upgrade, as I didn’t have this problem before.
This makes me think I need to also allow the root user on the mac to also be authorized to connect to the multipass service.
Do you know if there is an additional place on a Mac that the multipass_client_certs.pem needs to be copied to, in order to fix this for the root user?
What you need to do is with your normal user that is authenticated, run: $ multipass set local.passphrase
and set the passphrase.
Then with the sudo user, run: $ multipass authenticate
and enter the passphrase you just set.
I know, it seems counterintuitive that the sudo user needs to authenticate, but the Multipass daemon has no concept of user privileges, so it only trusts the first client that had permission to connect to the Multipass socket and after that, all other users’ clients need to authenticate regardless of privileges.
I’m using multipass in Windows 11 using hyper-v. When I set the env var MULTIPASS_STORAGE=d:\dev\vm\multipass thinking that the vhd files can be saved in that location.
It instead messed up multipass. Authentication error, blah blah blah. Every command didn’t work due to authentication error.
Spent 2 days googling, re-installing multiple times. Finally, I decided to take a video of the installation process and saw that multipass was trying to authenticate with hyper-v and it was looking to my d drive for cert file and it was empty. So I remove the env var that I put in 2days ago which I forgot I did. Re-installed and now everything’s working now.
I’m posting this hoping it will help someone save time.
Sorry, my English is not very good, so I used translation software,
I have found two solutions to solve this problem in Windows series. This solution should be applicable to Windows and Windows Server. I have only verified it in Windows Server 2022, which will be explained below.
#Problem description
After installing multipass in Winodws, I modified the external data storage location of multipass by referring to the configuration of external data storage location,This error occurred.
Description of two solutions
When you are unwilling or unable to reinstall Multipass, please refer to the first solution
If you can reinstall Multipass, please refer to the second solution
Of course, I recommend that you look at both solutions so that you can quickly solve this problem next time
The first solution
The C:\ProgramData\Multipass directory will be automatically created after the installation of Multipass,There are some related files involved in the authentication. When I modified the external data storage location of Multipass, Multipass did not completely copy or recreate these files, resulting in the inability of Multipass to complete the authentication process.
I manually copied the C:\ProgramData\Multipass\data\authenticated-certs directory to the data directory of the modified external data storage location, and the problem was solved. Multipass will no longer ask me for my key
The second solution
I uninstalled the old Multipass, reset the external data storage location, and then reinstalled Multipass. The problem was solved. Multipass no longer asks me for my key.
Observe the external data storage location and find that the authenticated-certs directory is automatically created
Thank to @yahocen, first solution work for me!
Yeah, in my case, I copied all files in C:\ProgramData\Multipass\ (cache, data, conf) to the new location instead of data\authenticated-certs folder. This will save your SSD disk size!!!
However, Failed to Power on with Error ‘A virtual disk support provider for the specified file was not found.’ occur when I use multipass shell. So, I did this to solve my problem:
Correct path field in data\vault\multipassd-instance-image-records.json file
Go to Hyper-V Manager -> Choose multipass’s instances -> Settings -> Hard Drive -> Browse your new Virtual hard disk location -> DVD Drive -> Browse your new Image file location