Log Into a Remote Host Without a Password
Learn from Zemian Deng how to log into a remote host without using a password by setting up as the authorized client using ssh with Java.
Join the DZone community and get the full member experience.Join For Free
Most remote systems are secured by SSH, and to gain remote control with terminal, you would need to
into the server. You will be prompted to login with your password on every session. To avoid typing password everytime, you need to setup as the authorized client. Here is how you can do that with ssh key.
First on your own client machine, generate the
bash> ssh-keygen # When prompted to enter password, simply hit ENTER key to skip it! bash> cat ~/.ssh/id_rsa.pub xxxyyyzzz zemian@myhost # You will see a very long string instead of "xxxyyyzzz".
Now, you need to copy this public key string into your remote host. You need to
ssh into the remote host with your valid password first to setup. If successful, the subsequent
ssh into the remote host will not prompt you for password!
bash> ssh myremotehost # Enter password to gain access
After you are in the remote host:
myremotehost> vim ~/.ssh/authorized_keys #Paste and append the "xxxyyyzzz" into above file.
If you don’t already have the
~/.ssh/authorized_keys file on remote host, then create it, but ensure you don’t let other users or groups to access it. Use command like this to change the permission:
bash> chmod g-rw,o-rw ~/.ssh/authorized_keys
The cool thing about this is that it affects all
ssh related commands, such as
scp will now work without prompting you for password!
Have a productive day!
Published at DZone with permission of Zemian Deng. See the original article here.
Opinions expressed by DZone contributors are their own.