SSH 登入免密碼設定

Posted by admin on 08 二月, 2011 11:47

作業系統:Debian 7 / Ubuntu 13.04

連線 SSH 登入不用輸入密碼的設定,是為了方便運用 Rsync 指令的排程備份作業。設定過程和原理如同準備兩份鑰匙,一把交給對方保管,將來登門拜訪時拿鑰匙作為識別依據。這些數位化的「鑰匙」存放在電腦的檔案裡, 內容就是一長串英文 字母與數字的組合,而製作鑰匙的工具正是「ssh-keygen」指令。

【建立金鑰】
連線端電腦執行「ssh-keygen」指令建立金鑰……
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
首次執行需完成兩個設定項目,也可直接按三次 Enter 鍵使用預設值設定。

Your identification has been saved in /user/.ssh/id_rsa.
Your public key has been saved in /user/.ssh/id_rsa.pub.
The key fingerprint is:
33:4f:4f:08:c3:4a:f1:5b:e0:dd:96:96:f9:8d:6a:53 user@hostname
……

【檢查金鑰檔案】
確認私鑰與公鑰……
ls -al ~/.ssh
drwx------ 2 user user 4096 2011-03-01 13:55 .
drwx------ 5 user user 4096 2011-03-01 13:52 ..
-rw------- 1 user user 1679 2011-03-01 13:55 id_rsa
-rw-r--r-- 1 user user  394 2011-03-01 13:55 id_rsa.pub

「id_rsa」和「id_rsa.pub」兩個檔案已建立。

【複製公鑰內容】
vi ~/.ssh/id_rsa.pub
檢視公鑰檔案會看到一串字碼,如:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...... 6GkPLPGndut4+rcVB.....AkRItZ9tkx user@hostname
選取複製這些資料。

SSH 連線輸入使用者名稱及密碼登入遠端伺服器後,開啟使用者家目錄中「.ssh」資料夾裡的「authorized_keys」檔案,貼上剛才暫存的公鑰檔案 內容:

 ssh 172.20.1.x
   username@host:~# vi ~/.ssh/authorized_keys
  
......

可是…「authorized_keys」這個檔案以及資料夾「.ssh」通常是不存在的,需先以「mkdir .ssh」建立資料夾,再以「vi authorized_keys」指令直接編輯存檔即可。再次 SSH 連線伺服器時,即可直接以指定使用者名稱登入,不再需要輸入密碼了。

在任何管理機制中,安全與方便常常是難以兼顧的,這樣的免密碼登入方式的運用,當然得自行評估斟酌使用了。

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.