ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    CentOS rsync between servers using keyfile to pass credentials

    IT Discussion
    rsync centos7 crontab
    9
    44
    4.5k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • DustinB3403D
      DustinB3403
      last edited by DustinB3403

      Need to rsync between two systems, I know providing plaintext passwords is horrible (but it would work).

      How do I go about generating a ssh-key and copy to have crontab run this operation?

      1 Reply Last reply Reply Quote 0
      • DustinB3403D
        DustinB3403
        last edited by

        So using ssh-key I get the prompts to create a key.

        1 Reply Last reply Reply Quote 0
        • scottalanmillerS
          scottalanmiller
          last edited by

          Do this...

          ssh-keygen -b 4096
          
          DustinB3403D 1 Reply Last reply Reply Quote 3
          • DustinB3403D
            DustinB3403 @scottalanmiller
            last edited by

            @scottalanmiller to generate the key?

            1 Reply Last reply Reply Quote 0
            • DustinB3403D
              DustinB3403
              last edited by

              @scottalanmiller said in CentOS sync between servers using keyfile to pass credentials:

              ok key generating.

              1 Reply Last reply Reply Quote 0
              • DustinB3403D
                DustinB3403
                last edited by

                ok I've got the public and private keys

                ObsolesceO 1 Reply Last reply Reply Quote 0
                • scottalanmillerS
                  scottalanmiller
                  last edited by

                  Okay, now do the same thing on the second server. Then take the contents of the public key from the first one and populate the /home/user/.ssh/authorized_keys file on the second server with it.

                  stacksofplatesS 1 Reply Last reply Reply Quote 3
                  • ObsolesceO
                    Obsolesce @DustinB3403
                    last edited by Obsolesce

                    @DustinB3403 said in CentOS rsync between servers using keyfile to pass credentials:

                    ok I've got the public and private keys

                    If you need the md5 "fingerprint", you do that like this:

                    ssh-keygen -E md5 -lf /etc/ssh/ssh_host_rsa_key.pub

                    ..or whatever the filename of your key is.

                    I had to do that for WinSCP and SSH.

                    1 Reply Last reply Reply Quote 1
                    • stacksofplatesS
                      stacksofplates @scottalanmiller
                      last edited by

                      @scottalanmiller said in CentOS rsync between servers using keyfile to pass credentials:

                      Okay, now do the same thing on the second server. Then take the contents of the public key from the first one and populate the /home/user/.ssh/authorized_keys file on the second server with it.

                      I'd just do ssh-copy-id Its easier. That way there is no chance the SELinux context (or mode) for that file can change.

                      1 Reply Last reply Reply Quote 4
                      • Emad RE
                        Emad R
                        last edited by

                        Hi,

                        I see scott gave you some answers, but I will try to break it down easier otherwise I missunderstood the question.

                        So in server A and B
                        run this

                        ssh-keygen -t rsa

                        And press enter to accept the defaults

                        Now in both servers under the user account you will see hidden folder called .ssh which can be found

                        /home/USERNAME/.ssh
                        or
                        /root/.ssh

                        And inside this folder you will find :
                        id_rsa.pub

                        Copy the contents of this file in both servers A and B into a new file called and name it authorized_keys and place it in the same directory, for example server A will have key 123 server B will have key 456 in this authorized_keys it should have both entries.

                        And bam thats it , this is SSH pasword less login, not sure if its the same thing but seems easier and better.

                        travisdh1T 1 Reply Last reply Reply Quote 2
                        • travisdh1T
                          travisdh1 @Emad R
                          last edited by

                          @msff-amman-Itofficer Yes.....

                          Except for the root bit, that's not considered a good practice. If you want remote access as root, ssh in with a normal user account and then use sudo. Gives you a way to track what is being done in the logs.

                          1 Reply Last reply Reply Quote 0
                          • DustinB3403D
                            DustinB3403
                            last edited by

                            This is still requiring the ssh access key, and the root password of the remote host.

                            scottalanmillerS travisdh1T 2 Replies Last reply Reply Quote 0
                            • scottalanmillerS
                              scottalanmiller @DustinB3403
                              last edited by

                              @DustinB3403 said in CentOS rsync between servers using keyfile to pass credentials:

                              This is still requiring the ssh access key, and the root password of the remote host.

                              Which did you do?

                              1 Reply Last reply Reply Quote 0
                              • DustinB3403D
                                DustinB3403
                                last edited by

                                Generated a public and private key on each host.

                                Moved the public key onto each host overwriting authorized_keys.

                                Using rsync -avztopgr -e "ssh -i $HOME/.ssh/authorized_keys" /home/admin/summit-reg/wp-config.php sr2i:/home/admin/summit-reg/

                                I'm still asked for root password.

                                1 Reply Last reply Reply Quote 0
                                • travisdh1T
                                  travisdh1 @DustinB3403
                                  last edited by

                                  @DustinB3403 said in CentOS rsync between servers using keyfile to pass credentials:

                                  This is still requiring the ssh access key, and the root password of the remote host.

                                  ???

                                  Two different things! You ssh into the remote with the standard user. Remote access is now established and you're running as if local.

                                  sudo does not require the root password, it requires the user authenticate to the system when used. With sudo you never require the root password. su does require the root password, but good security practice would not have anyone use su.

                                  Also note I say authenticate to the system, a great number of different ways to do that without passwords.

                                  DustinB3403D 1 Reply Last reply Reply Quote 0
                                  • DustinB3403D
                                    DustinB3403 @travisdh1
                                    last edited by

                                    @travisdh1 That is the goal, to use the public and private keys to authenticate between the servers and then rsync any changes from host 1 to host 2.

                                    travisdh1T 1 Reply Last reply Reply Quote 1
                                    • DustinB3403D
                                      DustinB3403
                                      last edited by

                                      Any ideas guys?

                                      Reid CooperR 1 Reply Last reply Reply Quote 0
                                      • Reid CooperR
                                        Reid Cooper @DustinB3403
                                        last edited by

                                        @DustinB3403 said in CentOS rsync between servers using keyfile to pass credentials:

                                        Any ideas guys?

                                        Any error? What did you do?

                                        DustinB3403D 1 Reply Last reply Reply Quote 0
                                        • travisdh1T
                                          travisdh1 @DustinB3403
                                          last edited by

                                          @DustinB3403 said in CentOS rsync between servers using keyfile to pass credentials:

                                          @travisdh1 That is the goal, to use the public and private keys to authenticate between the servers and then rsync any changes from host 1 to host 2.

                                          Right, using ssh-copy-id is the easiest way to get the ssh keys to the proper places once generated. After that, just use rsync with ssh like normal and it won't ask for a password.

                                          rsync -e ssh user@host:/dir /local/dir
                                          

                                          I've distributed keys manually in the past, but ssh-copy-id is so much faster and foolproof.... yes, I can be a fool with ssh keys quite easily.

                                          1 Reply Last reply Reply Quote 1
                                          • DustinB3403D
                                            DustinB3403 @Reid Cooper
                                            last edited by

                                            @Reid-Cooper No errors, just a prompt for the root password to connect to the server.

                                            Reid CooperR travisdh1T 2 Replies Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • First post
                                              Last post