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然後,重啟遠端主機的ssh服務pubkeyauthentication yes
authorizedkeysfile .ssh/authorized_keys
//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目錄下有兩個檔案...