天天看點

gitlab配置ssh keys認證失敗_一文讓你了解如何配置SSH免密碼登入

上文對SSH的主要配置項進行了講解,下面我們來了解下SSH免密碼登入的原理。

ssh免密碼登入的原理就是通過非對稱加密算法,即公私密鑰對實作免密碼登入的。也就是說,在伺服器生成公鑰和私鑰,當有用戶端連接配接此伺服器,将用戶端的public key寫入~/.ssh/authorized_keys檔案,此檔案中會維護一個public key,當public key驗證一緻時,ssh會登入成功,同理,要實作雙向免密碼登入,隻需要在用戶端的authorized_keys檔案中維護服務端的public key即可,切記,不要傳輸private key,不然會出事的,哈哈!

gitlab配置ssh keys認證失敗_一文讓你了解如何配置SSH免密碼登入

上圖說明了ssh免密碼登入的配置過程。ssh-copy-id的公鑰複制指令,省的用scp指令上傳了。

這裡要提一下更快的生成key的方法:

$ ssh-keygen -t rsa -P ''

直接ssh-keygen然後三次回車就可以了。

-P表示密碼,-P '' 就表示空密碼,也可以不用-P參數,這樣就要三車回車,用-P就一次回車。

當然,ssh加密算法的-t參數是可以選擇的哈。ssh免密碼登入的關鍵在于authorized_keys中維護好公鑰,這樣才能實作免密碼登入。

SSH免密碼登入應用很廣,包括主流的代碼托管網站,github和gitlab也在用ssh key,這在叢集維護時将大大提升效率。當然了,SSH協定的進階功能有很多,下次我們來看如何遠端執行SSH指令,這個應用也很廣哦,尤其是在上百台叢集維護的時候。