大家好,今天我來向大家介紹如何在 ubuntu12.04 上設定 ssh 的無密碼登入功能。僅在工作站上有正确的(公私)密鑰對以供比對時ssh服務端才會允許你登入,反之通路将不會被允許。
正常情況下,我們需要連上ssh的控制台輸入使用者名及其密碼才行。如果兩者全部正确,我們就可以通路,反之通路被服務端拒絕。不過相比而言還有一種比用密碼更安全的登入方式,我們可以在登入ssh時通過加密密鑰進行無密碼登入。
如果你想啟用這個安全的方式,我們隻需簡單的禁用密碼登入并隻允許加密密鑰登入即可。使用這種方式時,用戶端計算機上會産生一對私鑰和公鑰。接着用戶端得把公鑰上傳到ssh服務端的authorized_key檔案中去。在授予通路前,伺服器及用戶端電腦會校驗這個密鑰對。如果伺服器上的公鑰與客服端送出的私鑰比對則授予通路權限,否則通路被拒絕。
這是認證到ssh伺服器的非常安全的一種做法,如果你想為單一的ssh使用者登入實作安全登入,這也是備受推崇的方式。這裡快速的過一遍如何啟用無密碼登入ssh的配置過程。

<a target="_blank"></a>
首先,我們需要更新我們的本地庫索引。是以如下所見,我們需要先輸入“apt-get update”
<code>$ sudo apt-get update</code>
updating repo index
現在我們可以通過以下指令安裝openssh-server:
<code>$ sudo apt-get install openssh-server</code>
installing openssh server
在openssh已經成功安裝在ubuntu14.04作業系統上了之後,我們要啟動openssh的服務。以下指令讓你啟動/開啟服務。
<code>$ sudo service ssh start</code>
或
<code>$ sudo /etc/init.d/ssh start</code>
在我們安裝并啟動了openssh服務以後。現在終于到了要我們搞定公私鑰對的時候了,在終端中運作以下指令:
<code>$ ssh-keygen -t rsa</code>
在運作完以上指令了以後,我們需要回答一系列的問題。首先選擇儲存密鑰的路徑,按回車将會選擇預設路徑即家目錄的一個隐藏的.ssh檔案夾。下一個提示是請輸入密碼提醒。我個人将此留白(直接回車)。之後密鑰對就會建立,大功告成。
generating key pair
在密鑰對生成以後,我們需要将用戶端上的公鑰複制到ssh服務端或者主機,來建立對用戶端的信任關系。運作以下指令複制用戶端的公鑰到服務端。
<code>$ ssh-copy-id user@ip_address</code>
在公鑰上傳之後,我們現在可以禁用通過密碼登陸ssh的方式了。為此,我們需要通過以下指令用文本編輯器打開/etc/ssh/ssh_config。
<code>$ sudo nano /etc/ssh/sshd_config</code>
現在,我們需要按照下圖所示去掉幾行注釋并進行一些指派。
configuring sshd config
最後,在我們配置完ssh服務端後,為了使改動生效我們需要重新開機ssh服務。在終端或控制台運作以下指令重新開機。
<code>$ sudo service ssh restart</code>
<code>$ sudo /etc/init.d/ssh restart</code>
restarting ssh
現在,我們可以試試不用密碼僅用密鑰對的方式登入ssh服務端了。
太好了!我們成功的配置了無密碼登入ssh。使用加密密鑰對進行ssh伺服器認證是非常安全的一種做法,如果你想為ssh的單一使用者登入實施安全的認證這也是備受推崇的方式。是以,如果你還有什麼問題或建議,請在意見框中向我們回報。很欣慰你能讀完,希望你能喜歡加密的ssh安全登入
原文釋出時間:2015-04-05
本文來自雲栖合作夥伴“linux中國”