配置多臺伺服器之間ssh免密登入
阿新 • • 發佈:2021-08-02
使用scp 或者 rsync命令在多臺Linux伺服器之間同步檔案時需要輸入密碼,除了使用expect實現自動化互動以外,還有一種方法就是配置伺服器之間ssh免密登入,本文記錄一下具體配置過程。
目錄1. 建立.ssh目錄
假定有3臺Linux主機,分別為A,B,C
在所有主機上建立ssh目錄並賦予許可權
mkdir /root/.ssh
chmod 700 /root/.ssh
2. 生成公鑰與私鑰
所有主機生成公鑰與私鑰,執行以下命令:
$ cd ~ # 進⼊入使用者目錄 $ ssh-keygen -t rsa -P "" # 生成ssh密碼,-t 引數表示生成演算法,可以選擇rsa和dsa;-P表示使用的密碼,""表示無密碼。
3. 將公鑰追加authorized_keys檔案中
將第一臺主機A上生成公鑰追加到authorized_keys檔案中
$ cd ~/.ssh # 進入.ssh目錄
$ cat id_rsa.pub >> authorized_keys # 將id_rsa.pub的內容追加到authorized_keys檔案中
然後可以刪除A上的id_rsa.pub檔案,因為已經寫進了authorized_keys檔案中
$ rm -rf id_rsa.pub
或者
$ mv id_rsa.pub id_rsa.pub.copy
接下來將B和C的id_rsa.pub寫入到A的authorized_keys檔案中,使用scp 或者 rsync命令分別將B和C兩臺機器的id_rsa.pub複製到主機A 。(scp 或者 rsync命令的使用方法可參考文章使用SCP或Rsync實現Linux主機之間檔案、目錄的複製
在主機B上操作 :
$ scp id_rsa.pub hostA:~/.ssh/ # hostA為A的主機名或者A的IP地址
也可以直接在主機A上操作,執行如下命令:
$ scp hostB:~/.ssh/id_rsa.pub ~/.ssh/
在主機A上執行如下命令,將主機B的id_rsa.pub檔案內容新增到authorized_keys檔案中:
$ cat id_rsa.pub >> authorized_keys
$ mv id_rsa.pub id_rsa.pub.copy2
主機C類似,將C的id_rsa.pub檔案內容新增到authorized_keys檔案中。
這樣authorized_keys檔案裡面儲存了主機A,B,C的公鑰,然後將authorized_keys檔案拷貝到其它兩臺主機上就可以了:
$ scp authorized_keys hostB:/root/.ssh/
$ scp authorized_keys hostC:/root/.ssh/
4. 測試
ssh root@要進行連結的機器ip地址
主機A -> B:
[root@hostA ~]# ssh [email protected]
Last login: Sat Jul 10 10:17:34 2021 from hostA
[root@hostB ~]#
主機B -> A:
[root@hostB ~]# ssh [email protected]
Last login: Sun Jul 11 19:54:08 2021 from hostB
[root@hostA ~]#
歡迎關注公眾號:「測試開發小記」及時接收最新技術文章!