Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
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/id_rsa.pub (public key)

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

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

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

Refer: http://www.linuxproblem.org/art_9.html

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

500 comments

108k users

Browse Categories

...