大家好,今天我來向大家介紹如何在 Ubuntu12.04 上設(shè)置 SSH 的無密碼登錄功能。僅在工作站上有正確的(公私)密鑰對(duì)以供匹配時(shí)SSH服務(wù)端才會(huì)允許你登錄,反之訪問將不會(huì)被允許。
正常情況下,我們需要連上SSH的控制臺(tái)輸入用戶名及其密碼才行。如果兩者全部正確,我們就可以訪問,反之訪問被服務(wù)端拒絕。不過相比而言還有一種比用密碼更安全的登錄方式,我們可以在登錄SSH時(shí)通過加密密鑰進(jìn)行無密碼登錄。
如果你想啟用這個(gè)安全的方式,我們只需簡(jiǎn)單的禁用密碼登錄并只允許加密密鑰登錄即可。使用這種方式時(shí),客戶端計(jì)算機(jī)上會(huì)產(chǎn)生一對(duì)私鑰和公鑰。接著客戶端得把公鑰上傳到SSH服務(wù)端的authorized_key文件中去。在授予訪問前,服務(wù)器及客戶端電腦會(huì)校驗(yàn)這個(gè)密鑰對(duì)。如果服務(wù)器上的公鑰與客服端提交的私鑰匹配則授予訪問權(quán)限,否則訪問被拒絕。
這是認(rèn)證到SSH服務(wù)器的非常安全的一種做法,如果你想為單一的SSH用戶登錄實(shí)現(xiàn)安全登錄,這也是備受推崇的方式。這里快速的過一遍如何啟用無密碼登錄SSH的配置過程。

1.安裝Openssh服務(wù)端
首先,我們需要更新我們的本地庫(kù)索引。所以如下所見,我們需要先輸入“apt-get update”
$ sudo apt-get update

現(xiàn)在我們可以通過以下命令安裝openssh-server:
$ sudo apt-get install openssh-server

2. 開啟openssh服務(wù)
在OpenSSH已經(jīng)成功安裝在Ubuntu14.04操作系統(tǒng)上了之后,我們要啟動(dòng)OpenSSH的服務(wù)。以下命令讓你啟動(dòng)/開啟服務(wù)。
$ sudo service ssh start
或
$ sudo /etc/init.d/ssh start
3. 配置密鑰對(duì)
在我們安裝并啟動(dòng)了OpenSSH服務(wù)以后。現(xiàn)在終于到了要我們搞定公私鑰對(duì)的時(shí)候了,在終端中運(yùn)行以下命令:
$ ssh-keygen -t rsa
在運(yùn)行完以上命令了以后,我們需要回答一系列的問題。首先選擇保存密鑰的路徑,按回車將會(huì)選擇默認(rèn)路徑即家目錄的一個(gè)隱藏的.ssh文件夾。下一個(gè)提示是請(qǐng)輸入口令提醒。我個(gè)人將此留空(直接回車)。之后密鑰對(duì)就會(huì)創(chuàng)建,大功告成。

在密鑰對(duì)生成以后,我們需要將客戶端上的公鑰復(fù)制到SSH服務(wù)端或者主機(jī),來創(chuàng)建對(duì)客戶端的信任關(guān)系。運(yùn)行以下命令復(fù)制客戶端的公鑰到服務(wù)端。
$ ssh-copy-id user@ip_address
在公鑰上傳之后,我們現(xiàn)在可以禁用通過密碼登陸SSH的方式了。為此,我們需要通過以下命令用文本編輯器打開/etc/ssh/ssh_config。
$ sudo nano /etc/ssh/sshd_config
現(xiàn)在,我們需要按照下圖所示去掉幾行注釋并進(jìn)行一些賦值。

4. 重啟SSH服務(wù)
最后,在我們配置完SSH服務(wù)端后,為了使改動(dòng)生效我們需要重啟SSH服務(wù)。在終端或控制臺(tái)運(yùn)行以下命令重啟。
$ sudo service ssh restart
或
$ sudo /etc/init.d/ssh restart

現(xiàn)在,我們可以試試不用密碼僅用密鑰對(duì)的方式登錄ssh服務(wù)端了。
總結(jié)
太好了!我們成功的配置了無密碼登錄SSH。使用加密密鑰對(duì)進(jìn)行SSH服務(wù)器認(rèn)證是非常安全的一種做法,如果你想為SSH的單一用戶登錄實(shí)施安全的認(rèn)證這也是備受推崇的方式。所以,如果你還有什么問題或建議,請(qǐng)?jiān)谝庖娍蛑邢蛭覀兎答仭:苄牢磕隳茏x完,希望你能喜歡加密的SSH安全登錄 :-)
via: http://linoxide.com/ubuntu-how-to/setup-passwordless-ssh-logon-ubuntu-14-04/
作者:Arun Pyasi 譯者:martin2011qi 校對(duì):wxy
本文由 LCTT 原創(chuàng)翻譯