How to remotely copy files over SSH without entering a password

SSH (Secure Shell) is an encrypted protocol to connect with the remote device. By default, it works on TCP port 22. There are two methods to connect with the remote server using SSH, one is by using password authentication, and another way is to authenticate is by public key. In this tutorial, you will learn how to generate an SSH key and copy files over SSH (SCP) without entering a password in CentOS8.

Generate SSH Key

Before generating the SSH Key. Firstly, verify the SSH is installed or not. To verify, open up the terminal and type the following command.

# ssh –V

Generate SSH key

After verifying the SSH package. Now I am going to generate the SSH key, using the following command.

# ssh-keygen

To tighten up the security, you can mention the encryption algorithm according to your need, as shown below.

# ssh-keygen –t rsa

# ssh-keygen –t rsa –b 4096

ssh-keygen

After entering the above command, the following output should appear.

rsa key file name

To save the file in a suggested directory press enter.

Next, it will prompt you to enter the passphrase, leave it empty, and press enter. The following output should appear.

Key pair has been created

The SSH key is successfully generated. You can verify it by using the following command to view your SSH key.

Show pubkey

This command will print your SSH key.

Copy the SSH to the remote side, use the following command.

# ssh-copy-id –i [email protected]

Copy key to target server

Repeat all of the above processes on the remote side if you want two-way communication.

Copy file without Password:

To copy the file on the remote side using the following command.

# scp file.txt [email protected]:/tmp/

Copy file with scp

It will copy your text file to the remote server, for verification go to the remote side and verify that your file has been copied.

File has been copied to remote server

SSH Configuration

Sometimes you need to require to configure the SSH at the remote side for authentication. In this case, enable the SSH authentication key, for this open up the /etc/ssh/sshd_config, and enable or add the following lines.

RSAAuthentication yes

PubkeyAuthentication yes

Save the configuration file and restart the service using the following command.

# systemctl restart sshd

Conclusion

In this tutorial, we learned how to generate the SSH authentication key in CentOS8 and copy the file over the SSH without entering the password. I hope this tutorial will help you to understand SSH key generation and copy the file at the remote end.