For this experiment, we are using a WSL Ubuntu instance( codetryout-laptop ) and VirtualBox Ubuntu VM( codetryout ).
Step #1. Creating a public and private key (ssh key pair)
This step is required only one time. If you have already done this before, jump to step 2.
Run the command ssh-keygen and follow the steps. Given below an example with default values.
[email protected]:~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/codetryout/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/codetryout/.ssh/id_rsa Your public key has been saved in /home/codetryout/.ssh/id_rsa.pub The key fingerprint is: SHA256:VsO/A25z8Ifeoc1+Dpx7DXsP4AkYGaB2aIJDWfV6Mag [email protected] The keys randomart image is: +---[RSA 3072]----+ | .o...... | |.o oo + | |o . =..+o + | | . +... o+ o | | E . .S + o | | .. . * *.. | | + O Bo.| | . + B.==| | o.*=+| +----[SHA256]-----+ [email protected]:~$
A new keypair has been generated!
[email protected]:~$ ls -l .ssh/ total 13 -rw------- 1 codetryout codetryout 2602 Xxx 10 16:39 id_rsa -rw-r--r-- 1 codetryout codetryout 568 Xxx 10 16:39 id_rsa.pub -rw-r--r-- 1 codetryout codetryout 222 Xxx 10 16:39 known_hosts ...
Step #2. Exporting the SSH key to a remote server
Use ssh-copy-id command to copy the public key to a remote server, as shown below.
# Format: # ssh-copy-id [email protected]_SERVER # [email protected]:~$ ssh-copy-id [email protected] /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/codetryout/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1
Now try logging into the machine, with: ssh [email protected]
and check to make sure that only the key(s) you wanted were added.
[email protected]:~$ ssh [email protected] Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.11.0-25-generic x86_64) [email protected]:~$
Step #3. SSH Password-less login using the key.
Next time on wards, the remote server will not prompt for password.
[email protected]:~$ ssh [email protected] Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.11.0-25-generic x86_64) Your Hardware Enablement Stack (HWE) is supported until April 2025. Last login: XXX Xx 16:48:36 XXXX from x.x.x.x [email protected]:~$
The remote server must support ssh-key authentication method, and you should have the credential to copy the key.
With this, we have covered the topic, how to configure password less login. Step-by-step instructions from a WSL client to remote server.