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