集群中配置多台機器之間 SSH 免密碼登錄
問題描述
由於現在項目大多數由傳統的單台機器部署,慢慢轉變成多機器的集群化部署。
但是,這就涉及到機器間的 SSH 免密碼互通問題。
當集群機器比較多的時候,如何能快速簡潔地配置機器之間的免密碼登錄呢?
完美方案
1、分別查看集群的機器上,是否安裝了 SSH,並且服務正常運行
ps -ef | grep ssh
2、如果步驟 1 檢查后,確認沒有安裝 SSH,可以通過如下命令安裝 SSH
sudo apt-get install ssh
找到隱藏目錄.ssh(ll -a 可以查看隱藏文件和隱藏目錄)。如果沒有這個目錄,可以使用 mkdir .ssh 命令新建。
3、進入.ssh目錄下面,在每台機器上執行如下命令(一路回車,產生密鑰):
ssh-keygen -t rsa
4、完成第3步后會產生兩個文件:
id-rsa (私鑰)
id-rsa.pub (公鑰)
5、在第 1 台機器的.ssh目錄下執行如下命令(此后.ssh目錄下會出現authorized_keys文件)
cat id-rsa.pub >> authorized_keys
6、將第1台機器的.ssh目錄下面的 authorized_keys 文件拷貝到第 2 台計算機的.ssh目錄下
scp authorized_keys root@node2:/root/.ssh/
7、登錄第2台機器,在第2台機器的.ssh目錄下,執行如下命令(將第2台機器的公鑰追加到 authorized_keys 中)
cat id-rsa.pub >> authorized_keys.
8、依次類推,直到集群中的最后一台機器的公鑰添加到 authorized_keys 中 。
9、在集群的最后一台機器執行完追加后,生成的 authorized_keys 文件就包含集群中所有機器的公鑰。
此時,將最后一台機器上的 authorized_keys 文件,分別 scp 復制到集群中的每一台機器的.ssh目錄下,覆蓋原來的authorized_keys 文件。
10、完成第 9 步后,集群中的機器之間就實現了 免密碼ssh登錄。