先說一下,我用的centos7,root用戶。ssh的原理就不說了,網上介紹的文章很多,直接開始說操作步驟吧:
1.首先確認有沒有安裝ssh,輸入 rpm -qa |grep ssh查看
這樣就表示安裝了ssh,沒有的話就先安裝ssh
2.關閉防火牆
首先查看防火牆的狀態,運行 systemctl status firewalld.service
由於我這里已經關閉了防火牆,所以線框中的狀態Active位inactive狀態,開啟狀態下為running。永久關閉防火牆、禁止開機自啟動的指令為 systemctl disable firewalld.service(centos7下是該指令,其它系統可能有所區別),關閉之后可以再重新查看一下防火牆狀態,看是否關閉成功。
3.配置靜態IP
一般集群中每個服務器都會分配固定的IP地址,這樣連接比較方便。配置靜態IP時,首先查看服務器的網卡類型,執行命令:ls /etc/sysconfig/network-scripts,出現如下
可以看到網卡類型為ens33(這個每個人可能不同),然后編輯ifcfg_ens33文件,執行vim /etc/sysconfig/network-scripts/ifcfg-ens33 ,在配置文件種需要作如下修改(紅色方框內位修改后的結果),
由於我測試時用的是局域網,因為DNS服務器地址隨便用了一個。
鍵盤esc+shift+enter,然后輸入wq保存文件並退出,然后重啟網絡 service network restart,這樣靜態IP地址就配置完成了。
4.修改/etc/hosts文件
為了每次使用shh指令連接別的主機時不用輸入ip地址,可以在host文件中把主機名和ip地址進行映射,這樣比較方便。打開host文件 vim /etc/hosts,在文件末尾添加ip與主機名的映射
我這里創建了一個master,兩個slave
5.生成公匙、私匙,並移動公匙
以我自己的機器為例,假設我需要配置master連接slave1。首先在master機器上生成公匙和私匙,輸入ssh-keygen -t rsa,一直回車即可,結果如下
該指令在~/.ssh目錄下生成了公鑰(id_rsa.pub)和私鑰(id_rsa),可以進入該目錄下查看 cd ~/.ssh,然后輸入指令ls。登陸slave1主機,同樣的先在slave1上生成公匙和密匙,執行ssh-keygen -t rsa,一路回車,進入/.ssh目錄下,創建authorized_keys文件,然后先把本機slave1的公匙寫入到該文件中,cat ~/.ssh/id_rsa_pub authorized_keys,接下來需要把masterd的公匙復制到slave1上,先把master的公匙隨便復制到一個地方,例如/usr下,執行如下指令:scp root@192.168.0.158:~/.ssh/id_rsa.pub /usr ,此過程需要輸入master上root用戶的密碼,然后把master的公匙寫入到authorized_keys的末尾
cat /usr/id_rsa_pub ~/.ssh/authorized_keys,保存並退出文件。
6.修改文件權限
chomd 700 ~/.ssh
chomd 600 ~/.ssh/authorized_keys
到此,shh的免密登陸配置完成,可以在master上通過ssh slave1連接slave1主機了。