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的單一使用者登入實施安全的認證這也是備受推崇的方式。