關於新創建一個虛擬機以及多臺機器ssh無密登錄的一些細節問題補充

之前我的博客裏寫了在VMWare下如何安裝centos7以及如何配置多臺機器之間實現ssh無密登錄,但是當時也僅僅是安裝以及實現相應效果,具體有些細節沒有考慮,前幾天又重新安裝centos7並且測試了下ssh無密登錄,這裏記錄一下之前沒有注意到的細節問題,希望能對大家有所幫助。

1 .按照我的博客那種方式創建虛擬機,即使分配給這個虛擬機20G空間,也不會立即佔用20G空間,只會根據實際需要增長

2 .按照我的那種方式創建虛擬機,無需格外設置,本地與虛擬機可以自由相互ping通

3 .第一次是在root目錄下沒有.ssh這個文件夾,需要手動ssh生成密鑰公鑰來生成公鑰私鑰之後就會出現這個文件夾(執行密鑰生成命令會自動創建.ssh目錄)

4 .虛擬機如果使用的是鏈接克隆的話,那麼創建出來的新的虛擬機的ip地址會自動修改,具體是當前ip地址的最後一位加1,也就是無需手動修改了

5 .一開始/root/.ssh/下面是沒有known_hosts文件的,也沒有authorized_keys文件的

6 .當ssh遠程登錄到另一臺機器上,一開始沒有設置免密登錄,輸入密碼後,之後會將登錄的遠程這臺機器的ECDSA添加進本機的known_hosts裏面,簡單來說就是a遠程登錄b,會在a的/root/.ssh下面創建一個known_hosts文件,將b的ecdsa內容添加到a的known_hosts裏面 這裏known_host文件裏存放的貌似是一個ip地址,雖然由a遠程登錄b,c,但是是同一個ip所以這裏known_hosts文件裏只是ip不一樣,後面的一堆看似是亂碼的東西是一樣的

7 當a遠程登錄b和c後,會在a的known_hosts裏面記錄b和c的信息,但是沒有a本身的信息,這樣只能保證a遠程登錄b和c,但是不能保證b和c遠程無密登錄a,這裏只需要在a的known_hosts裏面把a的ip地址和後面的亂碼添加進去即可亂碼和b c的亂碼內容一致,

8 將b和c的公鑰全部拷貝到a的authorized_keys裏,ssh [email protected] cat ~/.ssh/id_rsa.pub>> authorized_keys 用的是這個命令

9 。此時abc的公鑰全部在a的authorized_keys中,abc的ip信息也全部在a的known_hosts,然後將a中的authorized_keys和known_hosts拷貝到b和c即可,本質就是讓這三臺機器互相知道對方的存在,這樣就省卻了免認證的步驟

10 經測試,ssh遠程登錄如果只是將三臺機器的公鑰拷貝到每臺機器上是不行的,必須要將known_hosts裏面的內容拷貝到三臺機器上纔會生效,爲了簡單起見,每個known_host裏面存放每個ip地址,除了ip其他的亂碼都一樣即可,這樣就能實現無密登錄

11 這裏還需要值得注意的一點, scp known_hosts root@test2:/root/.ssh/
我這裏遠程拷貝和遠程登錄都用到了root@ip地址,之前看到的ssh免密登錄都修改了/etc/hosts下面的文件,就是添加ip地址和主機名hostname的映射,實際上這一步是沒必要做的,設置這一步的主要目的就是讓Linux解析主機名,找到對應的ip名

如果沒有修改/etc/hosts文件,那麼你遠程登錄只能用ip地址不能用主機名,如果修改了該文件,那麼可以用主機名代替ip地址進行遠程操作。

12 之前認爲虛擬機的鏈接克隆可能會導致無法免密登錄,實際上沒有任何影響,至此關於遠程無密登錄設置的疑問就全部解釋清楚了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章