Linux之SSH金鑰認證

2022-07-29 06:00:08 字數 1880 閱讀 2948

ssh 為 secure shell 的縮寫,由 ietf 的網路小組(network working group)所制定;ssh 為建立在應用層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。ssh最初是unix系統上的乙個程式,後來又迅速擴充套件到其他操作平台。ssh在正確使用時可彌補網路中的漏洞。ssh客戶端適用於多種平台。幾乎所有unix平台—包括hp-ux、linux、aix、solaris、digital

unix、irix,以及其他平台,都可執行ssh。

通過ssh協議,使用者可以通過終端機訪問和使用遠端linux伺服器,ssh的埠為22。但每次進行連線都要輸入密碼。如果管理幾台到十幾台集群,那可以應付的的過來。如果集群增加了幾百,上千臺。那麼使用ssh管理起來就不方便了。所以ssh有沒有更簡便的方法呢?有的,在linux集群中,由一台管理機通過ssh管理其它的遠端linux伺服器,這種方法被稱為ssh金鑰認證管理伺服器。原理如下圖:

管理機:172.16.1.61 m01

nfs伺服器: 172.16.1.31 nfs01

web伺服器: 172.16.1.8 web01

管理機m01:

nfs伺服器nfs01:

web伺服器web01:

[root@m01 ~]# ssh-keygen -t dsa
如下圖所示:提示輸入是否確認,所有的提示按enter鍵.

檢視是否金鑰建立成功,金鑰生成後,儲存在/root/.ssh/下,這是乙個隱藏目錄。

其中:id_dsa是私鑰,id_dsa.pub是公鑰

由上圖所見我們已經建立金鑰成功

將公鑰拷貝到nfs01伺服器中,使用命令ssh-copy-id 。因為我更改過nfs01的ssh埠,由埠22變為埠52113.所以要新增"-p 52113"。拷貝到web01也是同理

[root@m01 ~]# ssh-copy-id -i ./.ssh/id_dsa.pub "

-p 52113 [email protected]

"

如下圖提示,第一次拷貝要輸入確認yes和oldboy帳號的密碼。

檢視nfs01上面是否拷貝成功,拷貝的檔案在oldboy家目錄下的隱藏目錄.ssh下

a.在m01上遠端執行nfs01上的命令

b.從m01上拷貝檔案到nfs01上

檢視nfs01上是否拷貝過去

a.ssh建立金鑰後,公鑰傳送給各個被管理的伺服器中。

b.除了第一次傳送公鑰後,需要密碼,其他遠端操作不再需要密碼。

另外:每次連線乙個新的伺服器都要手動確認和輸入密碼,也是不一般的麻煩。那有沒有一種方法不需要手動確認和輸入密碼?有的,那就是expect程式。

SSH金鑰認證原理

所謂的金鑰認證,實際上是使用一對加密字串,乙個稱為公鑰 public key 任何人都可以看到其內容,用於加密 另乙個稱為金鑰 private key 只有擁有者才能看到,用於解密。通過公鑰加密過的密文使用金鑰可以輕鬆解密,但根據公鑰來猜測金鑰卻十分困難。ssh 的金鑰認證就是使用了這一特性。伺服器...

SSH配置金鑰認證

通過配置金鑰訪問ssh,實現無密碼遠端登入伺服器,一方面簡化了操作,無需每次登入都輸入密碼,另一方如果禁用密碼登陸,只允許金鑰登入則提高了安全性,沒有密碼被破解的風險。配置金鑰ssh首先需要一對金鑰,可通過 ssh keygen 生成 ssh keygen t rsa 途中會提示指定金鑰儲存檔案 比...

理解ssh基於金鑰認證過程

toc理解ssh基於金鑰認證過程 今天是第一次知道ssh的加密,起初很不明白,後來看了前輩們寫的部落格,自己有一點理解 公鑰與金鑰的關係 有點類似於哲學上共性與個性的關係,我的理解就是,公鑰能開啟一類,私鑰只能開啟乙個。當我在上網的時候,我是乙個客戶端,我先登入到伺服器上才能讓伺服器給我辦事,就像q...