1. 程式人生 > >CentOS7 SSH 使用證書登入

CentOS7 SSH 使用證書登入

經常需要連線到伺服器時,每次都使用 ssh [email protected],會特別煩瑣,並且使用使用者名稱密碼登入也有一定的風險。這裡說一下通過證書登入到伺服器的方式。

1. 生成 SSH 金鑰和公鑰,並配置相應許可權

首先登入到伺服器,生成 SSH 的金鑰和公鑰

ssh-keygen -t rsa

將公鑰新增到 authorzied_keys 檔案中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改 authorized_keys 許可權為 644,.ssh 許可權為700

chown -R 700 ~/.ssh
chown -R 644 ~/.ssh/authorized_keys

檢視修改後的許可權

ll -a .ssh/
總用量 20
drwx------  2  700 root 4096 11月 13 09:00 .
dr-xr-x---. 3 root root 4096 11月 13 08:59 ..
-rw-r--r--  1  644 root  408 11月 13 09:00 authorized_keys
-rw-------  1  700 root 1675 11月 13 08:59 id_rsa
-rw-r--r--  1  700 root  408 11月 13 08:59 id_rsa.pub

2. 修改 ssh 配置

修改 sshd_config 配置檔案 vi /etc/ssh/sshd_config

,修改配置引數

# 允許金鑰認證
RSAAuthentication yes
PubkeyAuthentication yes
StrictModes no
# 公鑰儲存檔案
AuthorizedKeysFile .ssh/authorized_keys

注:第一次部署時在這裡踩了一個坑。出於安全形度考慮,在之前配置 ssh 時,設定了禁用 root 遠端登入 PermitRootLogin no,這裡生成 root 證書登入時,最後導致登入失敗。如果是為 root 使用者生成登入證書,還需要確認 sshd_config 的PermitRootLogin 為 yes。

3. 下載私鑰進行登入

下載 ~/.ssh/id_rsa

私鑰檔案,進行 ssh 登入 這裡是在 Mac 的終端使用 scp 下載到 Mac 使用者家目錄下:

scp [email protected]:/root/.ssh/id_rsa ~/

下載後確認其許可權是否為 600,如果不是進行調整 chmod 600 ~/id_rsa 若檔案許可權較大,會出現:

ssh -i id_rsa [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "id_rsa": bad permissions

許可權確認後,即可進行登入

# ssh -i id_rsa [email protected]
Last login: Tue Nov 13 09:10:17 2018 from 116.232.85.60
[[email protected] ~]# 

使用證書登入成功!

4. 最後再對使用 ssh -i 指定證書檔案進行優化

在本地電腦的 .ssh 目錄下建立 config 檔案,編輯檔案內容:

Host domain
	HostName hostname
	User root
	IdentityFile	~/id_rsa

儲存後,確認其許可權為600,若不是,須調整到600 再進行遠端登入時,使用 ssh domain 即可