Explore Courses Blog Tutorials Interview Questions
0 votes
in DevOps and Agile by (29.3k points)

I have some n number of files in a directory on my UNIX system. Is there a way to write a shell script that will transfer all those files via SCP to a specified remote system. I'll specify the password within the script so that I don't have to enter it for each file.

1 Answer

0 votes
by (50.2k points)

Instead of hard-coding a password in shell script, it’s better to use ssh keys which is more secure

For that 

$ scp -i ~/.ssh/id_rsa [email protected]:/path/to/bin/*.derp .

your private key should be at ~/.ssh/id_rsa

To generate a key pair:

$ ssh-keygen -t rsa

This will generate both private and public key in locations 

~/.ssh/id_rsa (private key) and ~/.ssh/ (public key)

To setup the SSH keys for usage (one time task) : 

Copy the contents of ~/.ssh/ and paste in a new line of ~devops/.ssh/authorized_keys in server. 

If ~devops/.ssh/authorized_keys doesn't exist, create it.


If still, this won’t work it means the .ssh dir or the authorized_keys files may not have the right permissions (700). Enable the permissions then you can solve this problem.

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

30.5k questions

32.6k answers


108k users

Browse Categories