Quick short and sweet. I am creating POC for Dataguard with multiple standby configuration using/hacking vagrant virtual box.
Being as lazy as I am and not liking to have to enter password, use sshUserSetup.sh
[oracle@ol7-121-dg1 ~]$ cd /u01/software/database/sshsetup/ [oracle@ol7-121-dg1 sshsetup]$ [oracle@ol7-121-dg1 sshsetup]$ ./sshUserSetup.sh -h Please specify a valid and existing cluster configuration file. Either user name or host information is missing Usage ./sshUserSetup.sh -user <user name> [ -hosts "<space separated hostlist>" | -hostfile <absolute path of cluster configuration file> ] [ -advanced ] [ -verify] [ -exverify ] [ -logfile <desired absolute path of logfile> ] [-confirm] [-shared] [-help] [-usePassphrase] [-noPromptPassphrase] [oracle@ol7-121-dg1 sshsetup]$ [oracle@ol7-121-dg1 sshsetup]$ ./sshUserSetup.sh -user oracle -hosts "ol7-121-dg1 ol7-121-dg2 ol7-121-dg3" -noPromptPassphrase The output of this script is also logged into /tmp/sshUserSetup_2020-04-05-11-53-56.log Hosts are ol7-121-dg1 ol7-121-dg2 ol7-121-dg3 user is oracle Platform:- Linux Checking if the remote hosts are reachable PING ol7-121-dg1.localdomain (192.168.56.101) 56(84) bytes of data. 64 bytes from ol7-121-dg1.localdomain (192.168.56.101): icmp_seq=1 ttl=64 time=0.016 ms 64 bytes from ol7-121-dg1.localdomain (192.168.56.101): icmp_seq=2 ttl=64 time=0.019 ms 64 bytes from ol7-121-dg1.localdomain (192.168.56.101): icmp_seq=3 ttl=64 time=0.036 ms 64 bytes from ol7-121-dg1.localdomain (192.168.56.101): icmp_seq=4 ttl=64 time=0.045 ms 64 bytes from ol7-121-dg1.localdomain (192.168.56.101): icmp_seq=5 ttl=64 time=0.041 ms --- ol7-121-dg1.localdomain ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4293ms rtt min/avg/max/mdev = 0.016/0.031/0.045/0.012 ms PING ol7-121-dg2.localdomain (192.168.56.102) 56(84) bytes of data. 64 bytes from ol7-121-dg2.localdomain (192.168.56.102): icmp_seq=1 ttl=64 time=0.333 ms 64 bytes from ol7-121-dg2.localdomain (192.168.56.102): icmp_seq=2 ttl=64 time=0.657 ms 64 bytes from ol7-121-dg2.localdomain (192.168.56.102): icmp_seq=3 ttl=64 time=0.547 ms 64 bytes from ol7-121-dg2.localdomain (192.168.56.102): icmp_seq=4 ttl=64 time=0.539 ms 64 bytes from ol7-121-dg2.localdomain (192.168.56.102): icmp_seq=5 ttl=64 time=0.514 ms --- ol7-121-dg2.localdomain ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4310ms rtt min/avg/max/mdev = 0.333/0.518/0.657/0.104 ms PING ol7-121-dg3.localdomain (192.168.56.103) 56(84) bytes of data. 64 bytes from ol7-121-dg3.localdomain (192.168.56.103): icmp_seq=1 ttl=64 time=0.356 ms 64 bytes from ol7-121-dg3.localdomain (192.168.56.103): icmp_seq=2 ttl=64 time=0.554 ms 64 bytes from ol7-121-dg3.localdomain (192.168.56.103): icmp_seq=3 ttl=64 time=0.463 ms 64 bytes from ol7-121-dg3.localdomain (192.168.56.103): icmp_seq=4 ttl=64 time=0.362 ms 64 bytes from ol7-121-dg3.localdomain (192.168.56.103): icmp_seq=5 ttl=64 time=0.472 ms --- ol7-121-dg3.localdomain ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4517ms rtt min/avg/max/mdev = 0.356/0.441/0.554/0.076 ms Remote host reachability check succeeded. The following hosts are reachable: ol7-121-dg1 ol7-121-dg2 ol7-121-dg3. The following hosts are not reachable: . All hosts are reachable. Proceeding further... firsthost ol7-121-dg1 numhosts 3 The script will setup SSH connectivity from the host ol7-121-dg1.localdomain to all the remote hosts. After the script is executed, the user can use SSH to run commands on the remote hosts or copy files between this host ol7-121-dg1.localdomain and the remote hosts without being prompted for passwords or confirmations. NOTE 1: As part of the setup procedure, this script will use ssh and scp to copy files between the local host and the remote hosts. Since the script does not store passwords, you may be prompted for the passwords during the execution of the script whenever ssh or scp is invoked. NOTE 2: AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEDGES TO THESE directories. Do you want to continue and let the script make the above mentioned changes (yes/no)? yes The user chose yes User chose to skip passphrase related questions. Creating .ssh directory on local host, if not present already Creating authorized_keys file on local host Changing permissions on authorized_keys to 644 on local host Creating known_hosts file on local host Changing permissions on known_hosts to 644 on local host Creating config file on local host If a config file exists already at /home/oracle/.ssh/config, it would be backed up to /home/oracle/.ssh/config.backup. Creating .ssh directory and setting permissions on remote host ol7-121-dg1 THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT. The script would create ~oracle/.ssh/config file on remote host ol7-121-dg1. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup. The user may be prompted for a password here since the script would be running SSH on host ol7-121-dg1. Warning: Permanently added 'ol7-121-dg1,192.168.56.101' (ECDSA) to the list of known hosts. oracle@ol7-121-dg1's password: Done with creating .ssh directory and setting permissions on remote host ol7-121-dg1. Creating .ssh directory and setting permissions on remote host ol7-121-dg2 THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT. The script would create ~oracle/.ssh/config file on remote host ol7-121-dg2. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup. The user may be prompted for a password here since the script would be running SSH on host ol7-121-dg2. Warning: Permanently added 'ol7-121-dg2,192.168.56.102' (ECDSA) to the list of known hosts. oracle@ol7-121-dg2's password: Done with creating .ssh directory and setting permissions on remote host ol7-121-dg2. Creating .ssh directory and setting permissions on remote host ol7-121-dg3 THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT. The script would create ~oracle/.ssh/config file on remote host ol7-121-dg3. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup. The user may be prompted for a password here since the script would be running SSH on host ol7-121-dg3. Warning: Permanently added 'ol7-121-dg3,192.168.56.103' (ECDSA) to the list of known hosts. oracle@ol7-121-dg3's password: Done with creating .ssh directory and setting permissions on remote host ol7-121-dg3. Copying local host public key to the remote host ol7-121-dg1 The user may be prompted for a password or passphrase here since the script would be using SCP for host ol7-121-dg1. oracle@ol7-121-dg1's password: Done copying local host public key to the remote host ol7-121-dg1 Copying local host public key to the remote host ol7-121-dg2 The user may be prompted for a password or passphrase here since the script would be using SCP for host ol7-121-dg2. oracle@ol7-121-dg2's password: Done copying local host public key to the remote host ol7-121-dg2 Copying local host public key to the remote host ol7-121-dg3 The user may be prompted for a password or passphrase here since the script would be using SCP for host ol7-121-dg3. oracle@ol7-121-dg3's password: Done copying local host public key to the remote host ol7-121-dg3 cat: /home/oracle/.ssh/known_hosts.tmp: No such file or directory cat: /home/oracle/.ssh/authorized_keys.tmp: No such file or directory SSH setup is complete. ------------------------------------------------------------------------ Verifying SSH setup =================== The script will now run the date command on the remote nodes using ssh to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP, THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR PASSWORDS. If you see any output other than date or are prompted for the password, ssh is not setup correctly and you will need to resolve the issue and set up ssh again. The possible causes for failure could be: 1. The server settings in /etc/ssh/sshd_config file do not allow ssh for user oracle. 2. The server may have disabled public key based authentication. 3. The client public key on the server may be outdated. 4. ~oracle or ~oracle/.ssh on the remote host may not be owned by oracle. 5. User may not have passed -shared option for shared remote users or may be passing the -shared option for non-shared remote users. 6. If there is output in addition to the date, but no password is asked, it may be a security alert shown as part of company policy. Append the additional text to the <OMS HOME>/sysman/prov/resources/ignoreMessages.txt file. ------------------------------------------------------------------------ --ol7-121-dg1:-- Running /usr/bin/ssh -x -l oracle ol7-121-dg1 date to verify SSH connectivity has been setup from local host to ol7-121-dg1. IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR. Sun Apr 5 11:54:28 UTC 2020 ------------------------------------------------------------------------ --ol7-121-dg2:-- Running /usr/bin/ssh -x -l oracle ol7-121-dg2 date to verify SSH connectivity has been setup from local host to ol7-121-dg2. IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR. Sun Apr 5 11:54:28 UTC 2020 ------------------------------------------------------------------------ --ol7-121-dg3:-- Running /usr/bin/ssh -x -l oracle ol7-121-dg3 date to verify SSH connectivity has been setup from local host to ol7-121-dg3. IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR. Sun Apr 5 11:54:28 UTC 2020 ------------------------------------------------------------------------ SSH verification complete. [oracle@ol7-121-dg1 sshsetup]$
I wonder if Tim reads my blog?