Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the best way of doing scp from one box to the other without prompting for password?

There are two servers:

  • Server A (10.152.2.10): /home/oracle/export/files.txt

  • Server B (10.152.2.11): /home/oracle/import/

If I want to transfer the files using scp from server A to server B without being prompted to enter a password

[running this from Server A, /home/oracle/export/]

scp files.txt oracle@10.152.2.11:/home/oracle/import

This would prompt me for a password upon entering the command.

I understand that a keygen is required to be generated and copied to Server A. Thus [at server A]:

ssh-keygen -t rsa

This gives me two files stored in /home/oracle/.ssh:

id_rsa
id_rsa.pub

1. Am I supposed to copy the two files (id_rsa, id_rsa.pub) over into server B /home/oracle/.ssh ?

While doing some google search on this, some articles mentioned about appending/concatenating this to authorized_keys.

2. Am I supposed to create this file on my own?

I seem to be confused on what is the right way to do this.

Btw, the two servers are running Suse Linux Enterprise Edition 9...

share|improve this question

migrated from stackoverflow.com Jun 2 '11 at 0:53

This question came from our site for professional and enthusiast programmers.

1  
Try 'keychain': gentoo.org/proj/en/keychain – Adam Bernier Feb 27 '09 at 6:18
  1. No, you keep id_rsa to yourself; however, id_rsa.pub, which is your public key, may be copied to servers to which you wish to have access. Concatenate them onto the end of ~/.ssh/authorized_keys.
  2. Yes, you may create ~/.ssh/authorized_keys if it is not already created; otherwise, just append to the end of the file, using cat id_rsa.pub >>~/.ssh/authorized_keys.
share|improve this answer

Also there is a tool that sorts all this for you called ssh-copy-id.

It will append the key in your agent if you have one running to the authorized_keys file and create it if it does not exist with the right permissions. If you aren't running an agent you can specify the key to push with -i: ssh-copy-id -i ~/.ssh/id_rsa

share|improve this answer

You should also check the permissions on the various files and directories:

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

Your home directory must not be writable by anyone other than you.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.