1. 程式人生 > 其它 >配置多臺伺服器之間ssh免密登入

配置多臺伺服器之間ssh免密登入

使用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 ~]# 
--THE END--

歡迎關注公眾號:「測試開發小記」及時接收最新技術文章!