ssh主機互信

2022-07-27 13:42:22 字數 1767 閱讀 8818

ssh主要用於遠端登入。假定你要以使用者名稱user,登入遠端主機host,只要一條簡單命令就可以了。

$ ssh user@host

如果在hosts檔案中配置了別名,就可以直接使用別名登入了。

ssh之所以能夠保證安全,原因在於它採用了公鑰加密。

整個過程是這樣的:(1)遠端主機收到使用者的登入請求,把自己的公鑰發給使用者。(2)使用者使用這個公鑰,將登入密碼加密後,傳送回來。(3)遠端主機用自己的私鑰,解密登入密碼,如果密碼正確,就同意使用者登入。

使用密碼登入,每次都必須輸入密碼,非常麻煩。好在ssh還提供了公鑰登入,可以省去輸入密碼的步驟。

所謂"公鑰登入",原理很簡單,就是使用者將自己的公鑰儲存在遠端主機上。登入的時候,遠端主機會向使用者傳送一段隨機字串,使用者用自己的私鑰加密後,再發回來。遠端主機用事先儲存的公鑰進行解密,如果成功,就證明使用者是可信的,直接允許登入shell,不再要求密碼。

這種方法要求使用者必須提供自己的公鑰。如果沒有現成的,可以直接用ssh-keygen生成乙個:

$ ssh-keygen

重要引數解析:

-t:指定加密方式,有四種「dsa」, 「ecdsa」, 「ed25519」, or 「rsa」,一般用rsa.

-p:提供(舊)密碼短語.

-f:指定金鑰檔名。可以使用絕對路徑也可以使用相對路徑,但檔案必須放在登陸使用者的家目錄的.ssh/目錄中。不提供此引數,預設放在家目錄的.ssh/下面。

在$home/.ssh/目錄下,會新生成兩個檔案:id_rsa.pub和id_rsa。前者是你的公鑰,後者是你的私鑰。

這時再輸入下面的命令,將公鑰傳送到遠端主機host上面:

$ ssh-copy-id user@host

如果還是不行,就開啟遠端主機的/etc/ssh/sshd_config這個檔案,檢查下面幾行前面"#"注釋是否取掉。

rsaauthentication yes

pubkeyauthentication yes

authorizedkeysfile .ssh/authorized_keys

然後,重啟遠端主機的ssh服務

//

ubuntu系統

service ssh restart

遠端主機將使用者的公鑰,儲存在登入後的使用者主目錄的$home/.ssh/authorized_keys檔案中。公鑰就是一段字串,只要把它追加在authorized_keys檔案的末尾就行了。

這裡不使用上面的ssh-copy-id命令,改用下面的命令,解釋公鑰的儲存過程:

$ ssh user@host '

mkdir -p .ssh && cat >> .ssh/authorized_keys

'< ~/.ssh/id_rsa.pub

這裡只是完成了本地機免密登入遠端主機。

假設要配置幾台主機之間的互信。

那就在每台主機下面都生成秘鑰檔案:

$ ssh-keygen -t rsa -p '

' -f '

id_rsa

'

然後把每台主機的公鑰互相追加儲存在每台主機的 .ssh/authorized_keys 檔案中。

最後也可以給主機起個別名儲存在/etc/hosts 檔案中

比如192.168.2.100 node1

192.168.2.101 node2

這樣就可以用別名登入了

ssh node1

SSH新增互信

若a機器192.168.1.10 b機器192.168.1.11新增互信 1.每個伺服器生成密匙,執行 ssh keygen t rsa 2.在a 192.168.1.10 機器上 cd ssh 檢查有無authorized keys touch authorized keys 若無則建立 3.將所...

ssh互信配置

每個節點都執行 ssh keygen t rsa 一路回車 將公鑰新增到認證檔案中 cat ssh id rsa.pub ssh authorized keys 並設定authorized keys的訪問許可權 chmod 600 ssh authorized keys 只要在乙個節點執行即可 ss...

配置ssh互信

1 檢查是否安裝ssh ssh version,若是如下顯示則已安裝。2 使用ssh localhost命令驗證配置前無法連線本機 3 ls a 檢視隱藏目錄.ssh 生成金鑰 3個節點都要生成 ssh keygen t dsa p f root ssh id dsa 檢視到.ssh目錄下有兩個檔案...