scp异地备份
A主機
1.用oracle用戶登入:192.17.28.5
2.產生公鑰與私鑰:id_rsa為私鑰,id_rsa.pub為公鑰
cd /home/oracle/.ssh --要確保.ssh文件夾,其它用戶或用戶組沒有W寫的權限,否則將無效.
[oracle@ytdbbackup .ssh]$ssh-keygen -t rsa --有提示默認回車就OK
3.將公鑰復制給要免密碼的IP主機,
并將id_rsa.pub寫到IP主機的:/home/oracle/.ssh目錄的authorized_keys文件:
[oracle@ytdbbackup .ssh]$ssh-copy-id -i id_rsa.pub oracle@192.17.28.2
B主機
1.用oracle用戶登入:192.17.28.2
cd /home/oracle/.ssh
2.權限改為只讀,不能寫。注:如果authorized_keys文件可以寫則免密碼登錄失效。
chmod 400 authorized_keys
3.查看權限,只當前用戶有r權限。
ls -lth
A主機:
1.oracle用戶登錄.
2.sh文件建立:
touch scp.sh
vi scp.sh
寫入:
scp -r oracle@192.17.28.2:/data/backup/backup_tfj_rman /data/backup/
scp -r oracle@192.17.28.2:/data/backup/archive_jxdb /data/backup/
3.排程:crontab -e
--rman備份后,星期1、2、4、6,備份rman文件。
58 03 * * 1,2,4,6 sh /data/backup/backup_tfj_rman/scp.sh
B主機排程:crontab -e
--星期1、3、5、天,晚上20:30rman排程
30 20 * * 1,3,5,7 sh /data/backup/backup_tfj_rman/rman_job.sh
A作为客户端,要实现无密码公钥认证,连接到服务器B上时,
需要在A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。
当A通过SSH连接B时,B就会生成一个随机数并用A的公钥对随机数进行加密,并发送给A。
A收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许A进行连接了。
这就是一个公钥认证过程,其间不需要用户手工输入密码。