近日買了一台 Synology DS214 NAS 系統,主要是想集中備份散落在各電腦和硬碟中的精選相片,以及當做 MBP 的 Time Machine 儲存空間來備份 Mac,這台 NAS 附帶還可以幫我從 GoDaddy Hosting 虛擬主機 rsync 同步備份伺服器上的檔案回家保存在 NAS 裡面。
在備份 GoDaddy 虛擬主機時,遇到第一個問題是 SSH 需要打密碼登入,且設定 crontab 排程沒辦法輸入密碼,於是從網路 Google 到一些免密碼登入 Linux SSH 的方式,這方式同樣也適用於 Synology NAS 的 Linux SSH 免密碼登入 GoDaddy 虛擬主機,以下是我的設定步驟,筆記下來分享給各位參考。
Step 1: 產生金鑰對
要免密碼 SSH 登入,首先需在 Synology NAS (Client 端) 產生金鑰對,請先 SSH root 登入 Synology NAS,登入後再輸入「ssh-keygen -t rsa」指令來產生公開金鑰(Public Key)與私密金鑰(Private Key)對。使用預設設定即可,Enter passphrase 直接按 Enter 即可。
Step 2: 確認是否有產生金鑰對檔案
請切換到 ~/.ssh/ 路徑,以指令「ls -l」檢視產生的金鑰對檔案,確認有檔名是 id_rsa(私鑰)及 id_rsa.pub(公鑰)兩個檔案。
Step 3: 到 Godaddy Hosting (Server 端) 建立 ~/.ssh/authorized_keys 檔案放置公鑰
請 SSH 登入到 Godaddy Hosting (Server 端),建立 ~/.ssh/ 目錄,以及在 ~/.ssh/ 目錄下產生 authorized_keys 空檔案。
指令「mkdir .ssh」建立目錄,指令「cd .ssh」切換路徑,指令「touch authorized_keys」產生一個 authorized_keys 空檔案,此為放置公鑰的檔案。若指令正確,則會在個人目錄下建立 .ssh 子目錄,以及目錄下產生一個 authorized_keys 空檔案,路徑例如:/var/chroot/home/content/14/xxxx14/.ssh/authorized_keys
Step 4: 回到 Synology NAS (Client 端),將公鑰內容放置在 Server 端的公鑰信任清單中
請切回到 Synology NAS (Client 端),接著要將 Client 端的公鑰內容放置在 Server 端的公鑰信任清單中,指令「cat ~/.ssh/id_rsa.pub | ssh 您的GoDaddy登入帳號@您的Godaddy虛擬主機 "cat >> ~/.ssh/authorized_keys"」。
指令例如:cat ~/.ssh/id_rsa.pub | ssh mary@www.uhooamber.com "cat >> ~/.ssh/authorized_keys"。詢問密碼時請輸入您在 GoDaddy 的 SSH 登入密碼。
Step 5: 將 GoDaddy 虛擬主機 (Server 端) 的公鑰清單設定唯獨
為了安全起見,請切回到 Godaddy Hosting (Server 端),將 GoDaddy 虛擬主機 (Server 端) 的公鑰清單設定唯獨,指令「chmod 400 authorized_keys」。請注意檔案路徑是在 ~/.ssh/authorized_keys。
Step 6: 驗證 SSH 免密碼登入 GoDaddy 及收工
最後請回到 Synology NAS (Client 端) 驗證 SSH 登入,指令「ssh 您的GoDaddy登入帳號@您的Godaddy虛擬主機」應該就不用再輸入密碼了,可以直接登入 GoDaddy 虛擬主機。指令例如:ssh mary@www.uhooamber.com。