[教學][NAS] Synology NAS SSH 免密碼登入
因為會將主機定期備份至 NAS,因此有傳送備份的需求,研究了一下考慮透過 SSH Rsync 的方法。
基本的原理要透過 SSH 執行,但把密碼明碼寫在 script 裡頗不安全,因此便打算透過 SSH authorized_keys 的方法,便可以免密碼登入
詳細教學可以看這篇:免密碼登入ssh
但設定好了主機連至 NAS 的金鑰後,在使用非 root 帳號,並有將帳號加入至 admin group 之後,無論怎樣都無法透過 key 登入成功,變研究了問題與解法:
解決方法
我們的目的是在主機透過 SSH 免密碼連線至 Synology NAS,以下稱主機和 NAS
步驟一:
NAS 開啟 SSH 功能及對應的 Port
欲使用的 NAS user 有加入 admin group 並可執行 SSH 服務 教學
步驟二:產生公鑰
- 在主機上按照步驟產生 public key (id_rsa.pub) 並透過 SCP 等方式傳送至 NAS
- 將 public key 加入至
~/.ssh/authorized_keys
(你自己 home directory 下的 .ssh 資料夾內)
可以參考這篇
0 1 2 3 |
cd /var/services/homes chmod 755 ./你的username資料夾名稱 |
並將 你自己 Home Folder 底下的 .ssh 資料夾權限也一併更改
0 1 2 |
scp -P NAS連接阜 ~/.ssh/id_rsa.pub "NAS帳號"@"NAS IP或域名":~/id_rsa.pub |
步驟三:更改資料夾權限
透過 SSH 及密碼連線至 NAS 後,執行以下動作
將你的 username 資料夾權限改成 755,使其他服務,例如 sshd 可讀並執行
不然預設 sshd 是無法存取你的 authorized_keys
0 1 2 3 |
cd /var/services/homes chmod 755 ./你的username資料夾名稱 |
並將 你自己 Home Folder 底下的 .ssh 資料夾權限也一併更改
0 1 2 3 4 |
mkdir ./.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys |
並按照 SSH 那篇教學加入上傳的 key
0 1 2 3 |
cat id_rsa.pub >> ~/ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys |
步驟四:更改 sshd 設定
更改 /etc/ssh/sshd_config
裡的設定, Synology NAS 預設並無開啟 authorized_keys 登入功能
先以 vim 指令搭配管理員權限來編輯 sshd_config 檔案:
0 1 2 |
sudo vim /etc/ssh/sshd_config |
以 vim 開啟後,找到以下三行並取消註解 (刪除行前 # 字號,按 i 更動,esc 完成,詳細請查詢 vim 指令)
0 1 2 3 4 |
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys |
以 :wq 結束檔案編輯
步驟五:重啟 SSH 服務
Synology ssh 服務重起指令比較特別:
0 1 2 |
synoservicectl --restart sshd |
如果遇到更改後 connection refuse,去控制台終端機,將 SSH 開關關閉儲存後再開啟儲存即可
如此,你便能成功的免密碼登入 NAS 了!