This gist provides a summary on how to accomplish the following tasks:
- Access WSL2 using putty
- Run Eclipse on WSL2 Ubuntu, displaying the Eclipse UI on VcXsrv running on Windows
- Connecting to VcXsrv directly from WSL2
- Using SSH X11 forwarding, with network connection initiated from Windows to WSL2 Ubuntu, which is particularly useful on company laptops that refuse all incoming network connections on Windows.
-
Prerequisites:
- WSL2 up and running
- Putty, Plink & PuttyGen installed on Windows
-
WSL2 Ubuntu: Install & configure OpenSSH
-
sudo apt install openssh-server
-
Edit
/etc/ssh/sshd_config
:X11Forwarding yes X11DisplayOffset 10 X11UseLocalhost no
-
sudo ssh-keygen -A
-
sudo service ssh start
-
-
Auto-start SSH daemon:
- WSL2 Ubuntu:
mkdir -p ~/bin ; echo "sudo service ssh start" >> ~/bin/startup.sh
- Windows: Create scheduled task that runs on user logon, running
C:\Windows\System32\bash.exe
with arguments/home/<user>/bin/startup.sh
- WSL2 Ubuntu:
-
Windows: Configure SSH public key authentication using PuttyGen:
- See https://www.puttygen.com/#How_to_use_PuTTYgen for general instructions
- Run PuttyGen
- Generate new key pair, or convert existing key pair
- Save private key to ppk file; this will used later when connecting to WSL2 Ubuntu using Putty or PLink
- Add the SSH public key to
~/.ssh/authorized_keys
on WSL2 Ubuntu
-
Windows: Create putty profile to connect to WSL2 Ubuntu:
- Session
- Host Name: localhost
- Port: 22 (or whatever OpenSSH port you configured on WSL2 Ubuntu)
- Connection -> Data:
- Auto-login username:
<your user name>
- Auto-login username:
- Connection -> SSH -> Auth:
- Private key file for authentication:
<key file generated by PuttyGen in step #2>
- Private key file for authentication:
- Connection -> SSH -> X11:
- Enable X11 forwarding (if you want to start X11 programs)
- X display location: 127.0.0.1:0.0 (this should match whatever DISPLAY value is shown in VcXsrv logs)
- Session
-
Windows: Install & configure VcXsrv:
- Download & install https://sourceforge.net/projects/vcxsrv/
- Copy config.xlaunch as shown below to the Startup folder (Win+R:
shell:startup
) - Launch config.xlaunch to start the X Server manually for now
-
WSL2 Ubuntu: Install Eclipse & prerequisites:
sudo apt-get install openjdk-11-jdk
sudo apt-get install libgtk-3-0
- Download and unpack Eclipse for Linux to ~/eclipse
-
Windows: Eclipse shortcut using SSH X11 tunnel:
- Manually try starting Eclipse from Windows by running the following command:
plink.exe -batch -X -i <path to .ppk from step #2> <Ubuntu username>@localhost ~/eclipse/eclipse
- Copy
silent.vbs
andplink-silent.cmd
(see attached files) to the directory where PLink.exe is installed - Create a new shortcut that runs the following command:
C:\Windows\System32\cmd.exe /c "C:\<path to plink>\plink-silent.cmd -batch -X -i <path to .ppk from step #2> <Ubuntu username>@localhost ~/eclipse/eclipse"
- Double-click the shortcut; if all is well you should see the Eclipse UI after a couple of seconds
- Manually try starting Eclipse from Windows by running the following command:
-
Windows: Eclipse shortcut using direct XServer connection:
- Add the following lines to
~/.profile
on WSL2 Ubuntu (create file if it doesn't yet exist):
Note that having these lines inexport DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 export LIBGL_ALWAYS_INDIRECT=1
.bashrc
won't work as.bashrc
is only loaded for interactive shells - Create a new shortcut that runs the following command:
C:\Windows\System32\wsl.exe -u <WSL2 user> -- bash -lc 'nohup ~/eclipse/eclipse' ^& sleep 1
- Add the following lines to
Just wanted to share my experience as I thought it would help others.
I managed to install and run Eclipse using WSL without any other software (Putty, Plink & PuttyGen included).
First of all, I followed instructions on this Windows tutorial up to the "Update the packages in your distribution" section. Once you're done with checking prerequisites and updating packages of your distro, you can proceed to install the Eclipse Installer directly from your WSL Bash. Here are the steps to reproduce :
Go to the Eclipse Installer page.
Click on
Linux x86_64
in the "Try the Eclipse Installer" section.Navigate to "Other download options", hover "Direct link to file", right click, select "Copy link".
In your WSL terminal, run
wget <copied-link>
. You don't need to use the-O
flag as we want to keep the original filename.(Recommended security steps up to step 8) Run the previous command again with some extras changes :
download.php
in the copied link bysums.php
.&type=md5
at the very end of the copied URL.-O eclipse-installer.md5
after thewget
command.wget -O eclipse-installer.md5 https://[...]sums.php?file=[...].tar.gz&r=1&type=md5
Make sure you have files
<eclipse-installer>.tar.gz
andeclipse-installer.md5
, then runmd5sum -c eclipse-installer.md5
.If the output says somehting like below, go to the next step. If not, try to download the tar.gz file again.
eclipse-java-2023-12-R-linux-gtk-x86_64.tar.gz: OK
Extract the downloaded archive with
tar xvfz <eclipse-installer>.tar.gz
.Run
cd eclipse/eclispe-installer/
, then./eclipse-inst
. A window should open, inviting you to install the software of your choice. DO NOT CLOSE/REDUCE the window during installation as it may crash if you do so. Keep the installation window open with focus on. When done, you cancd
to the chosen installation path and run./eclipse
.Happy coding !