1. 生成用於SSH的公鑰和私鑰(本例用戶爲cdot)
[cdot@server ~]$ ssh-keygen -t rsa
操作時會提示輸入:密鑰存放位置(直接回車,默認在/home/cdot/.ssh/目錄)、密碼短語、重複密碼短語。
完成後在/home/cdot/.ssh/目錄下生成了2個文件:id_rsa爲私鑰,id_rsa.pub爲公鑰。
[cdot@server .ssh]$ pwd
/home/cdot/.ssh
[cdot@server .ssh]$ ls
id_rsa id_rsa.pub
2. 導入公鑰
[cdot@server ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[cdot@server ~]$ cd .ssh/
[cdot@server .ssh]$ ls
authorized_keys id_rsa id_rsa.pub
3. 設置正確的文件和文件夾權限
[cdot@server ~]$ chown -R 0700 ~/.ssh
[cdot@server ~]$ chown -R 0644 ~/.ssh/authorized_keys
[cdot@server ~]$ chown -R cdot:cdot /home/cdot
4. 修改SSH配置文件,支持使用證書登錄(需要root權限)
編輯sshd的配置文件
[root@server ~]$ vim /etc/ssh/sshd_config
修改下列屬性
#禁用root賬戶登錄,如果是用root用戶登錄請開啓
PermitRootLogin yes
# 是否讓 sshd 去檢查用戶家目錄或相關檔案的權限數據,
# 這是爲了擔心使用者將某些重要檔案的權限設錯,可能會導致一些問題所致。
# 例如使用者的 ~.ssh/ 權限設錯時,某些特殊情況下會不許用戶登入
StrictModes no
# 是否允許用戶自行使用成對的密鑰系統進行登入行爲,僅針對 version 2。
# 至於自制的公鑰數據就放置於用戶家目錄下的 .ssh/authorized_keys 內
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 有了證書登錄了,就可以禁用密碼登錄
PasswordAuthentication no
5. 重啓SSH服務
[root@server ~]$ systemctl restart sshd.service
這樣一來在客戶端計算機持有服務器密鑰的情況下就可以不使用賬號密碼登錄服務器了。