DNS or Domain Name System is a decentralized naming system for systems which are connected to Internet (can be for private networks too). This is the way a computer knows, which other computer to connect to, when we type google.com in our browser, or in the ping command.There are servers known as dns servers, and for every domain name it needs to find, the client system generally connects to these dns servers, and finds out the IP address of the computer at that domain name.

ss command shows us socket statistics from the system. This command replaces the older netstat command.Read the man page of the command to know more about the different arguments we can pass at the command line.

We use the ssh command to login to remote computers. The remote
computer must have the sshd service running, and should also allow
clients to connect to this service. Let’s try to connect to localhost itself. Remember to start the sshd service before this
step.

As you can see, the command syntax is ssh followed by user@hostname. If your remote system’s user name is same as your current one, then you can omit the username and just use the hostname(IP address or domain name).

Each key has two parts. The id_rsa.pub is the public key and id_rsa is the private part of the key. One can safely upload or use the public key anywhere. But the private key, should be kept in a safe manner, because if people get access to your private key, they can also access all of your information from any system using that key.

In other words, do not give the private key to anyone, or do not randomly copy the .ssh directory to a USB drive and then forget about it.

ssh-copy-id command copies the keys to a given remote system. After
this step we can use the ssh key to login to the box directly, instead of the
usual username / password method.

$ ssh-copy-id fedora@209.12.123.55
/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: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys
fedora@209.12.123.55's password:
Number of key(s) added: 2
Now try logging into the machine, with: "ssh 'fedora@209.12.123.55'"
and check to make sure that only the key(s) you wanted were added.

Remember, this step can be dangerous.Unless you’re really, really sure that you can access a computer by either logging in physically or using your ssh key (and you have a backup of the key somewhere), you should not do this step.

By disabling password based login in the sshd service, you make sure that only people with the right private key can login to the computer. This helps greatly when people try to break into the system by guessing the password. This is also really helpful in case your computer is connected to some network, and you still need to access it over ssh.

We will use vim to open the /etc/ssh/sshd_config file, which is the configuration file for sshd service.

$ sudo vim /etc/ssh/sshd_config

Search for the term PasswordAuthentication, and change the value to no. Below I have added a new line to do the same.
You can also understand, that the lines starting with # are comments in this configuration file. This configuration will disable password based authentication for the sshd service. You should remember to restart the sshd service after this step for the change to take place.

Linux command line for you and me is a book for newcomers
to command line environment.