Linux-SSH互信

1、安裝ssh

對於Linux來說,實現遠程管理Linux服務器的過程會用到SSH,一般默認在Linux當中,默認是安裝好了的,並且是開啓的,防火牆規則中同樣是予以放行的,對於一臺Linux操作系統而言,可以將其作爲SSH的客戶端和服務端,且需要安裝完成兩個包即可。

openssh-clients-7.4p1-11.el7.x86_64
openssh-server-7.4p1-11.el7.x86_64

  • 在這裏插入圖片描述
2、連接ssh

ssh [username]@[ip地址]
如:ssh [email protected]

在這裏插入圖片描述
Linux下連接ssh過程中,如果不指定用戶名進行連接,則默認會使用你當前登錄的用戶去連接對方的那個用戶。

  • 在連接的過程中可以發現,會詢問你是否接受對方證書,然後提示輸入密碼,接受完成後會在當前用戶家目錄下下載一個密鑰文件,以隱藏格式保存在當前用戶家目錄下。
  • 一般在連接過程中,建議使用對方的普通身份呢進行ssh連接,然後通過[su -]方式切換到root用戶下,此方式更安全,避免ssh被偵聽。
3、通過ssh拷貝文件

通過ssh連接完成後,在兩個系統之間傳輸文件的方法:scp(ssh + cy)
scp -pr /root/test.sh [email protected]:/tmp
在這裏插入圖片描述
通過scp可以複製文件或者文件夾到對方系統當中,如果對方不存在該目錄,則複製會失敗。
注意:在上述的複製過程中,會彈出要求輸入密碼的提示,密碼正確後即可完成正確複製,那麼在寫腳本的時候,有時可能會需要遠程到遠程到其他Linux系統中執行操作,去調用遠程系統文件,這時彈出輸入密碼的提示則不太友好。
例:ssh [email protected] 'mkdir /tmp/centos’
對方系統中會創建該文件夾,但是這個過程會要求輸入密碼纔可,腳本中如果有此情況該如何辦呢。可採用ssh互信完成。

4、ssh互信

1、ssh採用非對稱加密,公鑰和私鑰。
ssh-keygen:生成一對密鑰,會詢問是否給公鑰加密碼,生成的密鑰對會存放在當前用戶的家目錄下。
2、生成密鑰對後,默認會在當前用戶的家目錄下幫你創建一個隱藏的.ssh文件夾,裏面會有幾個文件,id-rsa私鑰,id-rsa.pub公鑰。
在這裏插入圖片描述
known-hosts(此文件是在ssh連接方用來存放連接到對方的密鑰信息的文件)
3、將密鑰發送到對方,以期客戶端用以連接到自身,
將公鑰給對方:ssh-corp-id -i /root/.ssh/id-rsa.pub [email protected](此命令專門用來作爲傳送公鑰來使用)
在這裏插入圖片描述
4、做完該操作後,發現再去執行連接或者拷貝文件以及執行命令都不會再提示輸入密碼了,表明將認證方式改爲了基於密鑰進行的了。

  • 現在我連接對方不需要密碼,但是對方連接我依然需要密碼!而且傳輸過去的公鑰文件都是基於用戶的,想要去往目標系統的其他用戶登錄,則需要給不同的用戶都傳送一份密鑰。
  • 對於一臺設備而言,是可以同時存儲多臺設備的密鑰的,不會執行覆蓋,在當前系統當中,同樣會在家目錄中有一個.ssh文件夾用來接收他人傳送過來的密鑰文件,該文件爲~/.ssh/authorized_keys,任何人傳送給該目標系統同一用戶的密鑰都會保存在內,以追加的形式保存。
    在這裏插入圖片描述
5、ssh認證過程

1、ssh認證是基於用戶而不是基於設備的。
第一次去連接其他設備,提示保存的密鑰文件名爲known-hosts,存儲路徑爲~/.ssh/known-hosts。如刪除,則重新連接時會再次提示下載。
如果連接多個設備,則會在該文件當中後面追加密鑰信息,此爲連接的對象給定的密鑰,
2、公鑰
爲了放置中間人攻擊,會對公鑰執行檢查,根據提供的公鑰與自身的公鑰的一致性進行判斷,當安裝完成ssh後,默認會生成四把鑰匙,
在這裏插入圖片描述
這四把鑰匙是通過兩種算法生成的,一種算法會生成公鑰和私鑰兩把鑰匙,通過ssh傳遞出去的鑰匙實際上是ssh-host-key.pub這把。
爲了防止在第一次傳輸公鑰的過程中就遭受中間人欺騙,可以通過U盤將這把鑰匙拷貝過去。
3、密鑰使用
可以選擇將密鑰刪除,但是重啓服務後即可自動恢復,恢復過後的公鑰和私鑰與之前並不會相同,如果還有之前登錄的用戶保存有該主機的公鑰信息,並且還去用於登錄,則會提示對方密鑰已發生改變,無法進行連接,此情況可能是遭受到了中間人攻擊,也可能是真的密鑰發生了改變,可選擇將舊密鑰刪除重新利用新密鑰進行連接。
正常情況下,利用ssh客戶端連接ssh服務器端,有服務器端維護兩把鑰匙,並且將公鑰發送至客戶端,做ssh互信關係時,則由客戶端維護兩把鑰匙,發送一把公鑰至服務器端。
4、文件信息說明
etc/ssh/文件夾中,ssh-config是給客戶端使用的配置文件,即我去連接他人時用的文件,sshd-config則是給服務器端用的配置文件。
其中字段說明:PasswordAuthentication yes/on//用於設定是否開啓密碼認證,ssh支持密碼認證和密鑰認證,兩種方式互不干涉。
採用密鑰認證,可對公鑰進行拷貝,第一次需要通過密碼獲取密鑰。
ssh互信就是指連接他人時不用密碼認證而使用密鑰認證,並且再次登入不需要輸入登錄信息,Linux下默認不安裝telnet客戶端及服務端。

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