SCP from one server to another without password prompt
Solution 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
. - Yes, you may create
~/.ssh/authorized_keys
if it is not already created; otherwise, just append to the end of the file, usingcat id_rsa.pub >>~/.ssh/authorized_keys
.
Solution 2
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
Solution 3
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.
Solution 4
I would do the following:
On the client:
ssh-keygen -t rsa
ssh-copy-id [email protected]
This copys the key from the client to the server. You will need the password of the server to make it add your key to its ring.
- Password Authentication either needs to be on or you need to hand deliver the keyfile to the server.
On the Server:
I would at the vary least, turn off Password Authentication.
Related videos on Youtube
jimmij
Vanitas vanitatum et omnia vanitas. Libera temet ex inferis.
Updated on September 17, 2022Comments
-
jimmij over 1 year
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 [email protected]:/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...
-
Admin about 15 yearsTry 'keychain': gentoo.org/proj/en/keychain