CentOS 7 配置免密码证书登录
服務(wù)器: CentOS 7
客戶(hù)端: Xshell 6
?
密碼登錄:
這對(duì)我們來(lái)說(shuō)太熟悉了, 換句話說(shuō)我們對(duì)密碼這東西太熟悉了, 幾乎隨處都會(huì)用到. 登錄只是密碼的一個(gè)應(yīng)用場(chǎng)景之一. 但是密碼常見(jiàn)的風(fēng)險(xiǎn)在于, 一是可能泄露, 二是被破解的風(fēng)險(xiǎn)
?
證書(shū)登錄:
這里說(shuō)的證書(shū)其實(shí)就是密鑰. 在非對(duì)稱(chēng)加密中, 密鑰分為公鑰和私鑰. 私鑰, 即密鑰所有人持有. 公鑰則公布給他人. 公鑰和私鑰成對(duì)使用, 互相解密. 公鑰加密數(shù)據(jù)只能用私鑰解密; 私鑰加密則只能用公鑰解密(驗(yàn)證)
?
證書(shū)登錄原理:
密鑰對(duì)生成后, 公鑰存儲(chǔ)于遠(yuǎn)程服務(wù)器. 登錄時(shí)遠(yuǎn)程服務(wù)器向客戶(hù)端發(fā)送隨機(jī)字符串, 客戶(hù)端以私鑰加密后返回服務(wù)器, 服務(wù)器再以公鑰解密. 解密成功則證明客戶(hù)端合法, 允許登錄
?
配置證書(shū)登錄
1. 登錄用戶(hù):
首先在服務(wù)器生成公鑰和私鑰. 因?yàn)槊荑€與登錄用戶(hù)是對(duì)應(yīng)的, 所以生成的密鑰僅對(duì)當(dāng)前用戶(hù)有效. 本次以whl用戶(hù)登錄
?
以whl用戶(hù)登錄, 并且當(dāng)前路徑位于用戶(hù)的默認(rèn)home目錄下
?
2. 創(chuàng)建公鑰私鑰:
ssh-keygen -t rsa
ssh-keygen是一個(gè)用來(lái)生成和管理ssh密鑰的工具
-t參數(shù)用于指定密鑰類(lèi)型, 或者說(shuō)加密算法. 本次使用rsa算法. 除此以外還有rsa1, dsa可選
?
執(zhí)行命令后會(huì)提示輸入用于保存密鑰對(duì)的路徑. 默認(rèn)位于/home/用戶(hù)/.ssh目錄下. 確認(rèn)無(wú)誤則直接回車(chē)
?
提示目錄已創(chuàng)建, 同時(shí)要求輸入證書(shū)密碼. 該密碼用于客戶(hù)端使用證書(shū)時(shí)驗(yàn)證(要不然把證書(shū)文件復(fù)制走了豈不可以隨便登錄了?), 與用戶(hù)登錄密碼沒(méi)有任何關(guān)系. 而且也有提示: 不想設(shè)密碼的話保留為空即可, 不輸入任何內(nèi)容直接回車(chē)
?
然后要求再確認(rèn)一次. 有密碼就重復(fù)輸入一次, 沒(méi)有密碼當(dāng)然直接回車(chē)確認(rèn)
?
密鑰生成成功, 并提示保存路徑, 以及打印密鑰指紋
?
3. 寫(xiě)入公鑰
進(jìn)入證書(shū)存儲(chǔ)目錄
?
將公鑰寫(xiě)入authorized_keys. 目錄下多出一個(gè)文件authorized_keys
?
4. 設(shè)置權(quán)限
.ssh目錄權(quán)限為700, authorized_keys權(quán)限為600
?
5. 修改ssh配置文件sshd_config
該文件位于/etc/ssh目錄下
?
編輯該文件需要root權(quán)限. 切換為root用戶(hù), 然后就可以編輯了
?
找到PubkeyAuthentication這項(xiàng), 去掉前面的#注釋, 使其生效. AuthorizedKeysFile這項(xiàng)確保與剛才生成的文件路徑一致. 修改完畢保存并退出
?
?
最后重啟一下sshd服務(wù)
systemctl restart sshd
?
?
6. 下載私鑰
還記得home/.ssh下的三個(gè)文件不? 把私鑰id_rsa下載到本地
?
7. 配置客戶(hù)端
這里用的是Xshell 6
新建會(huì)話, 幾個(gè)常規(guī)項(xiàng)不變
?
用戶(hù)身份驗(yàn)證一欄, 方法選擇 Public Key
?
輸入用戶(hù)名, 點(diǎn)擊瀏覽
?
隨后彈出的對(duì)話框中選擇導(dǎo)入, 選擇剛才下載的私鑰文件
?
?
導(dǎo)入后這里會(huì)顯示已導(dǎo)入的密鑰. 點(diǎn)擊選中, 確定
?
用戶(hù)密鑰欄下拉列表會(huì)顯示已導(dǎo)入的密鑰. 選擇對(duì)應(yīng)該用戶(hù)的密鑰, 輸入密碼(無(wú)密碼則保留空), 確定. 會(huì)話創(chuàng)建完畢
?
雙擊剛創(chuàng)建的會(huì)話, 登錄成功
?
8. 關(guān)閉密碼登錄
到這一步為止證書(shū)登錄配置成功. 也就是說(shuō)此時(shí)用戶(hù)名密碼, 證書(shū)登錄都可用. 我們也可以將密碼登錄禁用, 只允許證書(shū)登錄. 這個(gè)配置還是在前面用到過(guò)的SSH配置文件sshd_config中
編輯sshd_config
vi /etc/ssh/sshd_config
?
找到PasswordAuthentication這一項(xiàng), 由yes改為no. 保存退出, 并重啟sshd服務(wù)
?
這時(shí)就可以看到, 第一(whl用戶(hù))和第三個(gè)會(huì)話(root用戶(hù))是以用戶(hù)名密碼登錄的, 已經(jīng)無(wú)法登錄了. 而且password輸入框也不可用
?
這里禁止的只是遠(yuǎn)程密碼登錄, 也就是SSH登錄. 本地輸入密碼切換用戶(hù)當(dāng)然是不影響的
?
?
總結(jié)
以上是生活随笔為你收集整理的CentOS 7 配置免密码证书登录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: windows处理回车和Linux,li
- 下一篇: 一文详解高精地图构建与SLAM感知优化建