[LINUX] UBUNTU使用rsync和SynologyNAS連線鏡像備份(搞定ssh無密碼整合crontab)

趁搞定後的記憶猶新,把相關資料整理作紀錄。

參考內容:
備份 – http://linux.vbird.org/linux_basic/0580backup.php
設定 – https://www.brilliantcode.net/2180/backup-data-to-synology-nas-using-rsync/

http://linux.vbird.org/linux_server/0310telnetssh.php#ssh_nopasswd
https://www.synology.com/zh-tw/knowledgebase/DSM/tutorial/General_Setup/How_to_login_to_DSM_with_root_permission_via_SSH_Telnet

以我的範例,
IP:192.168.100.201為網頁主機
IP:192.168.100.213為NAS主機
NAS已經開啟SSH連線,PORT指定22,且有一個NASUSER帳號。

先在網頁主機下建立,我是root帳號狀態。
指令:
ssh-keygen -f ~/.ssh/NAS_KEY
執行馬上會問輸入密碼,但是直接ENTER不用輸入,隨即產生檔案。
接著,指令:
ssh-copy-id -i ~/.ssh/NAS_KEY.pub NASUSER@192.168.100.213 -p 22
這時候,會嘗試連線到NAS主機用登入帳號問密碼,如果這時候NAS的ssh服務沒有開的話,會說連線失敗。
如果認證成功,且輸入密碼正確的話,就會跳一個說已經完成的訊息,可以用這樣的方法連線。如下:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '22' 'NASUSER@192.168.100.213'"
and check to make sure that only the key(s) you wanted were added.

跳到NAS的ssh模式下後,跟著處理一些檔案權限,指令:
ssh NASUSER@192.168.100.213 -p 22
sudo chmod 755 /var/services/homes/NASUSER
sudo chmod 700 /var/services/homes/NAS_USER/.ssh

這時候,還需要把一些設定功能啟用。
(vi編輯器不太會用,要按INSERT鍵才能開始編輯,按ESC鍵回到指令模式,可以打入:wq存檔、或:q離開。)
sudo vim /etc/ssh/sshd_config
找到這幾行最前面的的#都把他們移除。
RSAAuthentication yes
PubkeyAuthentication yes
ChallengeResponseAuthentication no
AuthorizedKeysFile .ssh/authorized_keys

完成後,要把NAS的ssh服務重新啟動。指令:
synoservicectl --restart sshd
DSM7.0版本,指令新呼叫方式要改成su狀態:
sudo su
systemctl restart sshd

如果重新啟動後,連不進去。
也可以在WEB管理介面下,先把SSH服務關閉V勾選來停止,再重新V勾選來啟動,應該就能連進去SSH。

這時候執行試看看連線,理論上就不會再問密碼直接進去,指令:
ssh -i ~/.ssh/NAS_KEY.pub NASUSER@192.168.100.213 -p 22

完成後,應該就能用rsync指令,無密碼詢問狀態來做更新,root帳號狀態,指令範例(請留意增加備註之**重點):
rsync -vzrtopg --progress /backup_file_folder/ -e ssh -i ~/.ssh/NAS_KEY -p 20002 NASUSER@192.168.100.213::target_file_folder
2022.09.14使用指令更新:
rsync -vzrtopg --progress --bwlimit=8M -e 'ssh -p 20002' /backup_file_folder NASUSER@192.168.100.213::target_file_folder
這樣應該就可以看到RSYNC功能能成功在執行相關的鏡象備份運作。
**重點:
Synology NAS的設定部分,要把RSYNC伺服器啟用後,而且要注意預設監聽的埠和SSH的埠兩者是不一樣的服務。
請留意自己主機的設定值,SSH是哪個PORT,RSYNC又是哪個PORT;上述指令的-p指定的是RSYNC啟用的PORT。

其他相關參考:
https://www.synoforum.com/threads/passwordless-ssh.5889/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

請輸入下列驗證碼計算後阿拉伯數字 (Translate it, if not Taiwanese to post reply) *