Linux如何設(shè)置ssh密鑰(免密碼)登錄
我們在使用ssh客戶端遠(yuǎn)程連接Linux服務(wù)器時(shí),為了考慮安全方面的因素,通常使用密鑰的方式來登錄。密鑰分為公鑰和私鑰,這兩把密鑰可以互為加解密。公鑰是公開的,私鑰是由個(gè)人自己持有,并且必須妥善保管和注意保密。
Linux設(shè)置密鑰登錄的步驟
一、生成密鑰(公鑰與私鑰)
執(zhí)行ssh-keygen命令,生成id_rsa和id_rsa.pub兩個(gè)文件,id_rsa是私鑰(重要,需安全保管),id_rsa.pub是公鑰,密鑰生成過程中可根據(jù)提示對密鑰設(shè)置密碼,也可留空直接回車。
解釋:
- -t 選項(xiàng)指定要使用的加密算法,“rsa”表示使用RSA算法;
- -b 選項(xiàng)指定密鑰的長度;
- -C 選項(xiàng)是可選的,用于添加注釋。
二、創(chuàng)建authorized_keys文件并設(shè)置權(quán)限
1.查看密鑰認(rèn)證文件authorized_keys是否存在,若不存在則創(chuàng)建并授權(quán),命令如下:
[root@server1 ~]# touch ~/.ssh/authorized_keys
[root@server1 ~]# ~/.ssh/authorized_keys
2.將公鑰內(nèi)容追加到authorized_keys文件中
[root@server1 ~]# cd ~/.ssh
[root@server1 .ssh]# cat id_rsa.pub >> authorized_keys
三、設(shè)置sshd配置文件允許使用密鑰登錄
修改sshd_config文件,啟用以下參數(shù):
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys
修改完配置文件,重啟sshd服務(wù):
[root@server1 ~]# systemctl restart sshd
四、使用私鑰登錄驗(yàn)證
在Linux主機(jī)上登錄驗(yàn)證:
[root@server1 .ssh]# ssh root@localhost -i id_rsa
Last login: Wed Sep 13 17:13:28 2023 from 192.168.15.1
在Win下使用ssh客戶端導(dǎo)入私鑰登錄驗(yàn)證
五、禁用密碼登錄
修改sshd_config文件,啟用以下參數(shù):
PasswordAuthentication no
重啟sshd服務(wù):
[root@server1 ~]# systemctl restart sshd
至此,Linux已經(jīng)設(shè)置為密鑰登錄,相對于使用密碼認(rèn)證登錄的方式更為安全,前提是私鑰要安全保管。今天的分享就到這里了,你學(xué)會了嗎?