Linux進行不輸入密碼的SSH連線

前言

一般SSH連線都會要求輸入密碼,若有自動SSH連線的需求,

則目標(被連者)需要建置免輸入密碼的設定。

案例

本地端使用Cron Job透過SSH連線對雲端伺服器進行同步資料(rsync)。

會有這個需求是因為有更新頻繁的網站,

大約1~2天就會有資料異動(靜態頁)的狀況,

因此打算凌晨放著自動更新。

流程

本機(連線者)產生公/私鑰,並將公鑰複製到目標端(被連者),

則未來SSH連線時即可不輸入密碼。

細節

1. 產生公/私鑰,指令: ssh keygen

(應也可使用puttygen產生,private key不能外流)

2. 將產生的公鑰內容貼到此檔案中:.ssh/authorized_keys

(此為設定的預設路徑&檔名)

注意,一個key只佔1行,複製貼上會自動斷行導致無法使用;

正確做法是將公鑰丟到目標端,將authorized_keys與公鑰內容合併。

(FTP或scp都可以做到這點)

補充

指令: scp是遠端複製檔案(上傳or下載都可)

http://linux.vbird.org/linux_server/0310telnetssh.php#scp

指令: rsync同步檔案(同步有差異的部分)

http://linux.vbird.org/linux_server/0310telnetssh.php#rsync

有什麼想法嗎?快來跟大家分享你的看法。