1. 程式人生 > >ubuntu16.04叢集之間配置SSH免密碼登陸與原理詳解

ubuntu16.04叢集之間配置SSH免密碼登陸與原理詳解

環境

vmware14.1虛擬機器中三臺ubuntu16.04

ip地址對映關係:如下

127.0.0.1     localhost
192.168.184.131  vm-01
192.168.184.132  vm-02
192.168.184.133  vm-03

(1) 安裝Openssh服務端

首先,我們需要更新我們的本地庫索引。所以如下所見,我們需要先輸入“apt-get update”

sudo apt-get update

通過以下命令安裝openssh-server:

sudo apt-get install openssh-server

(2) 開啟openssh服務

在OpenSSH已經成功安裝在Ubuntu14.04作業系統上了之後,我們要啟動OpenSSH的服務。以下命令讓你啟動/開啟服務。

sudo service ssh start

或者

sudo /etc/init.d/ssh start

(3) 配置金鑰對

安裝並啟動了OpenSSH服務以後。接下來就是要生成公私鑰對的時候了,在終端中執行以下命令:

ssh-keygen -t rsa

在執行完以上命令了以後,我們需要回答一系列的問題。首先選擇儲存金鑰的路徑,按回車將會選擇預設路徑即家目錄的一個隱藏的.ssh資料夾。下一個提示是請輸入口令提醒。我個人將此留空(直接回車)。之後金鑰對就會建立,大功告成。

在金鑰對生成以後,我們需要將客戶端上的公鑰複製到SSH服務端或者主機,來建立對客戶端的信任關係。執行以下命令複製客戶端的公鑰到服務端。

ssh-copy-id [email protected]_address #user換成自己的使用者名稱,ip_address換成對應的主機ip地址

至此,基本上實現了客戶端與伺服器端得免金鑰登陸了。下面是一些可選得操作。

**可選操作1 ssh localhost免密登陸 **

將公鑰新增到本地主機認證中,執行下面的命令:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys 

然後測試:ssh localhost 無需密碼即可登入則成功。

可選操作2 禁用密碼登陸

在公鑰上傳之後,我們現在可以禁用通過密碼登陸SSH的方式了。為此,我們需要通過以下命令用文字編輯器開啟/etc/ssh/ssh_config。

sudo vim /etc/ssh/sshd_config

主要找到下面的三行,修改成下面的樣子

RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys

(4) 重啟SSH服務

最後,在我們配置完SSH服務端後,為了使改動生效我們需要重啟SSH服務。在終端或控制檯執行以下命令重啟。

 sudo service ssh restart

sudo /etc/init.d/ssh restart

現在,我們可以試試不用密碼僅用金鑰對的方式登入ssh服務端了。

總結

太好了!我們成功的配置了無密碼登入SSH。使用加密金鑰對進行SSH伺服器認證是非常安全的一種做法,如果你想為SSH的單一使用者登入實施安全的認證這也是備受推崇的方式。

參考資料: