CentOS8 配置SSH使用密鑰登錄並禁止密碼登錄
概念
SSH 為 Secure Shell 的縮寫,SSH 為建立在應用層基礎上的安全協議。SSH 是較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。
SSH提供兩個級別的認證:
- 基於口令的認證
- 基於密鑰的認證
基本使用:
# p 端口號,user:用戶名,host:主機地址
ssh -p port user@host
ssh -p 1022 wzs@192.168.1.1
配置
這邊主要是使用基於密鑰的認證方式。
步驟方法:
- 首先在服務器生成密鑰對
- 服務器安裝公鑰
- 配置ssh配置
- 將服務器私鑰下載到客戶端進行導入
- 登錄完成
- 服務器端生成密鑰對
[root@centos84 .ssh]# ssh-keygen # 創建密鑰對
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): # 回車
Enter passphrase (empty for no passphrase): # 是否設置私鑰密碼,可以留空直接回車或者自行設置
Enter same passphrase again: # 確認輸入私鑰密碼,同上
Your identification has been saved in /root/.ssh/id_rsa. # 私鑰路徑
Your public key has been saved in /root/.ssh/id_rsa.pub. # 公鑰路徑
The key fingerprint is: # 下面是密鑰指紋
SHA256:HQMUGGtCReiEpejPSRc8XIeXEq4lB9G0hMI4dlsT+/Q root@centos84
The key's randomart image is:
+---[RSA 3072]----+
| oooBXO*o. |
| =.*=+B=o+ |
|o +o=B+*o o |
|. ..oX .. o |
| . . o .SE. |
| + o |
| + |
| |
| |
+----[SHA256]-----+
[root@centos84 .ssh]#
到此會在當前用戶的家目錄下創建一個.ssh的隱藏文件夾,密鑰存放在里面。
2.服務器安裝公鑰
# 認證文件配置中指定讀取.ssh/authorized_keys,因此我們需要將公鑰寫入到authorized_keys文件中
cat id_rsa.pub >> authorized_keys
3.檢查ssh配置文件
# /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
4.使用工具將服務器的.id_rsa文件下載到客戶端電腦,進行putty導入
下載回來的id_rsa是沒有后綴的文件,但是使用putty需要.ppk格式,這里可以使用putty的密鑰生成器進行轉換。
轉換:
將文件保存好。
導入.ppk格式的私鑰文件。
后面只需要輸入用戶不需要輸入密碼即可登錄。
5.禁用密碼登錄
# /etc/ssh/sshd_config文件修改配置,然后保存
PasswordAuthentication no
systemctl restart sshd
使用密碼提示登錄失敗
OK!