LINUX SSH 建立密鑰對


為什么要生成密鑰

在工作中,要訪問服務器的話,為了鑒別你的身份,需要輸入你的賬戶和密碼,如果訪問的頻率比較低,直接輸入賬戶和密碼倒也沒什么,但是訪問的頻率比較高,這就是一個很繁瑣的操作,同時也為自動化(比如自動化部署)帶來了一些不方便。為了解決這一個問題,就可以采用密鑰對的方法來處理。

密鑰對

所謂密鑰,顧名思義就是秘密的鑰匙,密鑰分為對稱密鑰和非對稱密鑰。在這里所用的密鑰是非對稱密鑰。而非對稱密鑰又叫做公鑰密鑰加密(即一個公鑰一個密鑰合成一個密鑰對)。公鑰用來加密,私鑰用來解密。

操作

那么具體的操作可以通俗一點來理解:就是你自己制造了一把鎖子(公鑰)和一把鑰匙(密鑰),然后你把鎖子(公鑰)放到了服務器上,把鑰匙(密鑰)放到了你的本地電腦上面,由於加密算法的存在,你的鎖子和鑰匙是唯一的一對,所以只要“密鑰”這把鑰匙能解開”公鑰“這把鎖,那么你就可以順利訪問服務器而不需要每次再輸入你的賬戶和密碼了。

配置私鑰和公鑰

先檢查一下服務器的ssh配置文件

/etc/ssh/sshd_config

RSAAuthentication yes # 啟用 RSA 認證 默認為 yes

PubkeyAuthentication yes # 啟用公鑰認證,默認為yes

在客戶端執行命令  ssh-keygen -t rsa 生成密鑰,會生成一個私鑰和一個公鑰文件,在提示輸入 passphrase 時如果不輸入,直接回車,那么以后你登錄服務器就不會驗證密碼,否則會要求你輸入 passphrase,默認會將私鑰放在 /root/.ssh/id_rsa 公鑰放在 /root/.ssh/id_rsa.pub。

windows 下面是一樣的命令 我這里用的是git的命令窗口:

密鑰文件會保存到,C:\Users\你的用戶名\.ssh 文件夾下面

將公鑰拷貝到遠程服務器上的/root/.ssh/authorized_keys文件中,注意,文件名一定要叫authorized_keys。如果有多個客戶端,將多個公鑰以換行分開,一行一個客戶端。

客戶端上保留私鑰,公鑰可以刪除。服務器上保存公鑰,客戶端上保存私鑰。這樣就可以實現無密碼驗證登錄了。

如果想要獲得最大化的安全性,禁止口令登錄,

可以修改 /etc/ssh/sshd_conf 中的

PasswordAuthentication yes 改為

PasswordAuthentication no

即只能使用密匙認證的 openssh,禁止使用口令認證。

如果希望ssh公鑰生效需滿足至少下面兩個條件:

1) .ssh目錄的權限必須是700

2) .ssh/authorized_keys文件權限必須是600

 

上傳公鑰到服務器 
如果需要訪問的是服務器,那么就需要上傳你的公鑰到對應的服務器上面了:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM