Is it possible to give the permissions to a file based on from which machine (IP address) [the user is] logged in?
No, it's not possible. The traditional Linux access framework uses DAC (Discretionary Access Control), based on users and groups. Even ACLs, which allow for more fine-grained permissions, are based on that. And so (IIRC) are PAMs.
You can do this in VirtualBox with the Guest Additions installed. It requires a processor with virtualization instructions and the instructions enabled in BIOS.
In the VirtualBox manager, adjust the settings of your VM by going to Settings → Display → Screen and ticking the following checkboxes:
☑ Enable 3D Acceleration
☑ Enable 2D Acceleration
This question has already been answered a few time over on AskUbuntu - it seems it's an issue with Ubuntu installs and UEFI.
This solution worked a charm for me, but note that you do have to complete the MOX bit on reboot if you choose to install third party drivers even after the installation completes.
The publickey auth is failing because the authorized_keys file is empty.
It is empty because you didn't add the public key to it. You could add it by first cd-ing to test_users .ssh directory on the windows box and running something like:
cat id_ecdsa.pub >> authorized_keys
(or whatever the public key's filename is, if it's not id_ecdsa.pub. Don'...