最近空閒時間較多,因而簡單學了下linux的知識。我但願實現的是遠程鏈接linux機器而且免密登陸。網上的資料一大堆,這裏呢,我也只是簡單總結記錄下,方便之後查看。linux
首先,咱們須要知道,linux經常使用的驗證方式有兩種:一、用戶名,密碼驗證 二、就是使用祕鑰進行驗證安全
我比較推薦使用祕鑰。由於從操做上來講,祕鑰更簡便,一次驗證,以後無需再輸入密碼,不用擔憂忘記繁瑣的密碼。從安全性來看,祕鑰驗證與傳統的用戶名密碼驗證相比安全性更高,不容易被攻擊破解。bash
(備註:祕鑰驗證的原理ssh
生成的祕鑰分爲公鑰和私鑰兩個,公鑰放到鏈接的遠程機器上,私鑰本身留存,當本地機器鏈接遠程機器時,本地機器會先向遠程機器發送一段公鑰的驗證信息,當遠程機器驗證公鑰成功後,其會生成一個隨機內容返回給本地機器,該內容只有與公鑰匹配的私鑰能夠解密,本地機器接受信息並使用私鑰進行解密,而後將解密結果再傳回遠程機器,若是解密正確,則登陸成功,不然沒法登陸)code
說了這麼多,直接講吧。ip
首先,在本地linux上執行如下命令,生成密鑰對:文件上傳
ssh-keygen -t rsa
執行以後會在 ~/目錄下生成一個.ssh文件(隱藏文件,可經過 ls -al 查看),密鑰對就在這個文件夾下,以下圖所示:it
其中id_rsa是私鑰,id_rsa.pub是公鑰class
而後,登陸另外一臺linux,進入~/.ssh目錄下(若是沒有該目錄,能夠新建),將id_rsa.pub的內容保存到authorized_keys文件中(沒有能夠建立),固然,你也能夠直接將id_rsa.pub上傳到遠程linux並保存成authorized_keys文件。linux之間互傳文件可使用下面的命令:登錄
#將本地filepath1的文件上傳到ip機器上的filepath2路徑下 scp filepath1 username@ip:filepath2
最後,在本地linux上執行下面命令進行登陸:
ssh username@ip
首次登陸會有確認登陸提示信息,只要輸入‘yes’和登陸密碼便可,登陸成功後,執行exit退出登陸,二次登陸改機器就再也不須要輸入密碼啦!
完結撒花!~\(≧▽≦)/~
有用就點個贊吧!本文原創,轉載需註明!