天天看點

配置免密登陸伺服器

原來自己學習的時候在阿裡雲買自己的學習機,一台主機自己瞎折騰。但是參加工作以後管理的主機越來越多了,上伺服器看的頻率也越來越頻繁,雖然有時候shell管理工具可以很友善的儲存,但是mac的終端實在是太香了,使用指令聯通萬物,配合一些ssh_config和hosts設定可以輕而易舉的上伺服器,這不比xshell酷和友善嗎😏

配置免密登陸伺服器

免密登陸除了友善适用場景也非常多,公司代碼一般都是配置ssh拉取,在github上配置了你電腦的公鑰以後拉提起代碼就不用輸入密碼也不用把密碼記錄到本地。

ssh使用的是不對稱加密的一個協定,後面我寫https會詳細介紹,簡單來說兩台主機使用非對稱加密進行通信,通信和被通信的主機都需要擁有不同的秘鑰,一般給發起通信方給出去的叫做公鑰,自己留的叫做私鑰,這個公鑰和私鑰都是進行解密資料的,為什麼要整這麼麻煩不直接http連接配接呢,周所周知http是透明協定,他的封包可以是沒有加密的這不安全。利用 SSH 協定可以有效防止遠端管理過程中的資訊洩露問題。

配置免密登陸伺服器

這裡是linux和mac的操作,win可以點選這裡,檢視github官方教程

打開終端,然後輸入

配置免密登陸伺服器

第二個高亮是指定私鑰位址,這裡直接回車選擇預設路徑就好

生成完了以後,在終端下面指令, 應該可以看到至少兩個檔案,一個是id_rsa還一個是id_rsa.pub,其中字尾為.pub的為公鑰。把這個公鑰發給你需要建立的通信方,對方就可以和你免密建立連接配接。

問題來了,既然這個.pub是發起通信方建立的,憑啥你給我.pub你就可以和我建立連接配接(建立連接配接意味着可以建立控制關系),剛剛隻解決可以解析封包,現在解決如何能同意對方連接配接。

其實我剛剛裡面有三個檔案,還有一個authorized_keys的檔案,這個檔案裡面記錄了别人的公鑰,也就是說隻要别人的公鑰在我這個authorized_keys裡面,那麼我就會可以解析對方的封包,并且同意對方連接配接。再提醒,這個authorized_keys是記錄别人的公鑰的,是以我們的公鑰需要寫到我們要免密登陸的主機上面。

那我們剛剛已經生成的公鑰,那我們現在寫入到我們要免密登陸的主機上吧

配置免密登陸伺服器

cat檢視公鑰資訊,然後複制到剪貼闆

配置免密登陸伺服器

我修改host, 然後進行ssh登陸,還沒配置需要密碼

配置免密登陸伺服器

登陸上主機,打開使用者目錄下面的.ssh檔案

這裡注意,這個公鑰和私鑰都是我之前生成過的,如果你沒生成過它裡面是沒有的,這個authorized_keys是需要自己建立的,還有一個known_hosts這是連接配接過的資訊,有人連接配接過這個主機,會自動生成這個檔案并且在裡面添加一條記錄

最後你就可以直接登陸你的主機了

講道理,這個ssh的非對稱加密隻使用公鑰和私鑰來進行鑒權,如果對安全不敏感,你可以分發自己的私鑰、公鑰和authorized_keys檔案,這樣在很多叢集直接就可以互相通信,而不需要每一台都生成key,然後再進行每一台互相寫入公鑰。大資料叢集直接很多這麼使用,但是這有悖非對稱加密的初衷。

如何配置github免密登陸

點選https://github.com/settings/keys

配置免密登陸伺服器

點選這個按鈕

配置免密登陸伺服器

輸入完在點選添加

然後你就可以使用ssh拉取代碼啦

更多有意思的文章歡迎大家來我的個人blog挖掘,點選這裡