When I use vscode remote explorer to connect to remote servers to read long configuration files. or investigate/search for configuration in a system, software, or solution that has no information about. I face files navigation limitations due to the limited user which I use it to connect to the server is limited. This article explains how to elevate vscode and allow it to connect to remote host as root with sudo
This will allow vscode to work on the remote host as root.
Remote host sudo user.
The user you connect to should have sudo without password in my example username is ansible
Connect to the remote host then create a file in /etc/sudoers.d/ or update the main file using visudo
- Add to /etc/sudoers.d/admin
ansible ALL=(ALL:ALL) NOPASSWD:ALL
- Then change permission to 0440
chmod 0440 /etc/sudores/admin
- Verify sudo setting by typeing
visudo -c
vscode-Server directory structure
now when you connect to the remote host with vscode for the first time, It creates a hidden directory inside the user’s home directory named vscode-server where it installs vscode-server binaries and configuration inside it.
Next, it creates a sub-directory with unique ID related to your vscode editor inside the vscode-server direcotry. Then, It starts an instance of vscode-server and terminate it when you disconnect
This unique identifier is related to the client you connect from. For example, I connect from two workstations, therefore I have two directories.
Configure vscode with sudo
After you connect to the server
find which client ID you are using by typing ps command
navigate into ~/.vscode-server/bin
List the content to detect latest updated directory
Edit the server.sh which is located inside clientID directory
Add sudo in the begining of the last line
Conclusion, Now when you connect using vscode to the remote host, you will find you self connected with sudo privliges and vscode Terminal will show as root user with full priviliges.