I wonder why people even work on remote servers? I write the server configuration as a Nix expression and deploy it on a remote machine. This has many benefits - machines become reproducible, you can use your local tools to edit the configuration (I use emacs with nix-mode), and you can deploy the same configuration in a virtual machine for testing with e.g. nixops.
On remote machines that I use interactively for e.g. machine learning, I set up nix + home-manager to have exactly the same configuration and packages as my local machine. On a new machine, I just install nix, checkout my home-manager configuration from git and run home-manager switch.
This setup adds a lot of additional benefits as well, I can always roll back to a previous generation of my configuration, I can use a package that I don't want to install with nix-shell -p <package>, and I can set up local environments with custom packages with nix-shell + direnv.