SSH 免密碼登入

2021-07-11 23:38:22 字數 1966 閱讀 2634

ssh原理與運用(一):遠端登入

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

如果本地使用者名與遠端使用者名稱一致,登入時可以省略使用者名稱。

ssh的預設埠是22,也就是說,你的登入請求會送進遠端主機的22埠。使用p引數,可以修改這個埠。

上面這條命令表示,ssh直接連線遠端主機的2222埠。

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

執行上面的命令以後,系統會出現一系列提示,可以一路回車。其中有乙個問題是,要不要對私鑰設定口令(passphrase),如果擔心私鑰的安全,這裡可以設定乙個。

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

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

rsaauthentication yes

pubkeyauthentication yes

authorizedkeysfile .ssh/authorized_keys

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

// ubuntu系統

authorized_keys檔案

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

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

這條命令由多個語句組成,依次分解開來看:

1. "$ ssh user@host",表示登入遠端主機;

2.單引號中的mkdir .ssh && cat >> .ssh/authorized_keys,表示登入後在遠端shell上執行的命令

3."$ mkdir -p .ssh"的作用是,如果使用者主目錄中的.ssh目錄不存在,就建立乙個;

4.'cat >> .ssh/authorized_keys'

< ~/.ssh/id_rsa.pub的作用是,將本地的公鑰檔案~/.ssh/id_rsa.pub,重定向追加到遠端檔案authorized_keys的末尾。

寫入authorized_keys檔案後,公鑰登入的設定就完成了。

使用下例中ssky-keygen和ssh-copy-id,僅需通過3個步驟的簡單設定而無需輸入密碼就能登入遠端linux主機。

ssh-keygen 建立公鑰和金鑰。

ssh-copy-id 把本地主機的公鑰複製到遠端主機的authorized_keys檔案上。

ssh-copy-id 也會給遠端主機的使用者主目錄(home)和~/.ssh, 和~/.ssh/authorized_keys設定合適的許可權 。

步驟1: 用 ssh-key-gen 在本地主機上建立公鑰和金鑰

步驟2: 用 ssh-copy-id 把公鑰複製到遠端主機上

步驟3: 直接登入遠端主機

a為本地主機(即用於控制其他主機的機器),b為遠端主機(即被控制的機器server), 假如ip為192.168.56.101,a和b的系統都是linux

在a上的命令:

在b上的命令:

也可以不用root使用者,換個使用者名稱

ssh 免密碼登入

ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh keygen t rs...

ssh 免密碼登入

ssh 免密碼登入 ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh k...

ssh免密碼登入

實現原理 主機a 產生公鑰和金鑰,將主機a的公鑰傳送到主機b 主機b 接收主機a傳送的公鑰 主機a ssh請求登入到主機b 主機b 傳送給主機a一串字元 主機a 收到主機b傳送的字元,使用金鑰進行加密,並傳送回到主機b 主機b 接收到主機a使用金鑰加密後的字元,使用主機a的公鑰執行一定演算法進行對比...