3.3 KiB
SSH with Ubuntu on WSL
SSH is a secure protocol used as the primary means of connecting to Linux servers remotely. It provides a text-based interface by spawning a remote shell. After connecting, all commands you type in your local terminal are sent to the remote server and executed there.
SSH key generation
Make sure SSH is installed by entering following command at the command prompt:
sudo apt install openssh-client
The key generation process is identical to the process on a native Linux or Ubuntu installation. With SSH installed, run the SSH key generator by typing the following:
ssh-keygen -t rsa
Then choose the key name and passphrase or simply press return twice to accept the default values (key name = id_rsa
and no passphrase
).
When the process has finished, the private key and the public key can be found in the ~/.ssh
directory accessible from the Ubuntu terminal.
You can also access the key from Windows file manager in the following folder:
\\wsl$\\Ubuntu\home\<username>\.ssh\
Your private key will be generated using the default name (id_rsa
) or the filename you specified.
The corresponding public key will be generated using the same filename but with a .pub
extension added.
If you open the public key in a text editor it should contain something similar to this:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNqqi1mHLnryb1FdbePrSZQdmXRZxGZbo0gTfglysq6KMNUNY2VhzmYN9JYW39yNtjhVxqfW6ewc+eHiL+IRRM1P5ecDAaL3V0ou6ecSurU+t9DR4114mzNJ5SqNxMgiJzbXdhR+j55GjfXdk0FyzxM3a5qpVcGZEXiAzGzhHytUV51+YGnuLGaZ37nebh3UlYC+KJev4MYIVww0tWmY+9GniRSQlgLLUQZ+FcBUjaqhwqVqsHe4F/woW1IHe7mfm63GXyBavVc+llrEzRbMO111MogZUcoWDI9w7UIm8ZOTnhJsk7jhJzG2GpSXZHmly/a/buFaaFnmfZ4MYPkgJD username@example.com
Copying the entire text you can specify your public SSH key while configuring your profile before deploying a VM.
Connect to remote host with SSH
With the SSH key you should be able to SSH to your account on the remote system from the computer that has your private key using the following command:
ssh username@remote_IP_host
If the private key you're using does not have the default name, or is not stored in the default path (not ~/.ssh/id_rsa
), you must explicitly invoke it!
On the SSH command line add the -i
flag and the path to your private key.
For example, to invoke the private key my_key
, stored in the ~/.ssh/keys
directory, when connecting to your account on a remote host, enter:
ssh -i ~/.ssh/keys/my_key username@remote_IP_host
Enable Port 22 in Windows Firewall
The port 22 is used for Secure Shell (SSH) communication and allows remote administration access to the VM. Sometimes it needs and can be unblocked as follows:
- open Windows Firewall Advance Settings
- click on
New Rule…
underInbound Rules
to create a new firewall rule - under
Rule Type
selectPort
- under
Protocol and Ports
selectTCP
,Specific local Ports
and enter22
- under
Action
selectAllow the connection
- under
Profile
make sure to only selectDomain
andPrivate
NB: do not select Public
unless you absolutely require a direct connection form the outside world.
This is not recommend especially for portable device (Laptop, Tablets) that connect to random Wi-fi hotspots.
- under
Name
- Name:
SSH Server
- Description:
SSH Server
- Name: