====== SSH 不需要密碼登入方式 ====== SSH 可以透過憑證信任的方式來直接登入, 適合用於 rsync 備份資料等背景程式自動執行處理作業 ===== Ubuntu ===== 以下介紹 ServerA 的 jonathan 可以直接使用 jonathan_serb.key 登入 jonathan@ServerB 的設定方式 ==== jonathan@ServerB 的設定 ==== * 產生連入的 key mkdir -p /home/jonathan/.ssh; ssh-keygen -t rsa -C 'jonathan\@servera.ichiayi.com' -f /home/jonathan/.ssh/jonathan_serb -q -N '' cat /home/jonathan/.ssh/jonathan_serb.pub >> /home/jonathan/.ssh/authorized_keys chmod -R go= /home/jonathan/.ssh chown -R jonathan:jonathan /home/jonathan/.ssh * 將產生的 key /home/jonathan/.ssh/jonathan_serb 傳送到 ServerA Exp. scp /home/jonathan/.ssh/jonathan_serb jonathan@servera.ichiayi.com:/home/jonathan/.ssh/jonathan_serb.key ==== jonathan@ServerA 的設定 ==== * 設定 key 權限 chmod 600 /home/jonathan/.ssh/jonathan_serb.key * 驗證使用 key 連入主機 ssh -i /home/jonathan/.ssh/jonathan_serb.key -o "StrictHostKeyChecking no" jonathan@servera.ichiayi.com ===== CentOS ===== 以下介紹 ServerA 的 root 可以直接登入 ServerB 的 root 設定方式 ==== ServerA 的設定 ==== su - root cd .ssh ssh-keygen -d 會產生 id_dsa.pub scp id_dsa.pub ServerB:/root/.ssh/ServerA_authorized_keys2 ==== ServerB 的設定 ==== su - root cd .ssh cat ServerA_authorized_keys2 >> authorized_keys2 ==== 無法登入可能原因 ==== 依據之前的測試經驗, 如果這樣還出現需要輸入密碼, 則需檢查 authorized_keys2 的存取權限, 最好改成只有自己可以讀取與修改, 其他或群組成員均不能讀取與修改 su - root cd .ssh chmod 600 authorized_keys2 ===== 參考網址 ===== * https://xenby.com/b/220-%E6%95%99%E5%AD%B8-%E7%94%A2%E7%94%9Fssh-key%E4%B8%A6%E4%B8%94%E9%80%8F%E9%81%8Ekey%E9%80%B2%E8%A1%8C%E5%85%8D%E5%AF%86%E7%A2%BC%E7%99%BB%E5%85%A5 {{tag>ssh 密技}}