目錄
- 1、服務器配置ssh
- 2、本地主機秘鑰對
- 3、上傳公鑰至服務器
- 4、配置服務器的公鑰信息
- 5、測試連接
1、服務器配置ssh
使用的服務器系統為 ubuntu系統20.04
首先確認服務器是否已安裝SSH,已安裝的話會返回openssh 的相關信息,返回為空表示未安裝
dpkg -l | grep openssh-server
如果沒有安裝,進行安裝
sudo apt update
sudo apt install openssh-server
安裝成功后,啟動ssh服務
sudo systemctl start ssh
sudo systemctl enable ssh
允許防火墻 通過SSH連接
sudo ufw allow 22/tcp
檢查是否啟動成功
sudo systemctl status ssh
返回:
查看服務器的主機名hostname 和 用戶名
hostname -I
ls /home/
查看 ssh 端口port,默認的端口號為22
sudo ss -tulnp | grep sshd
如果需要配置ssh的config文件,可以用vi或者nano對Config文件的內容進行修改
sudo vi /etc/ssh/sshd_config
編輯完后按 Esc
,
:w
保存文件
:wq
or ZZ
保存并退出
:x
保存并退出(只有當文件被修改時才保存)
:q
退出(未修改時)
:q!
強制退出不保存
或者
sudo nano /etc/ssh/sshd_config
編輯完后按
Ctrl
+ O
保存
屏幕底部顯示 File Name to Write: [當前文件名],保持原文件名,直接按 Enter 回車,要另存為新文件,輸入新文件名后按回車
Ctrl
+ X
退出
2、本地主機秘鑰對
本地主機:windows11
使用Git Bash 檢查本地是否現有SSH密鑰
ls -al ~/.ssh
返回:
如果看到 id_rsa (私鑰) 和 id_rsa.pub (公鑰),說明已有密鑰對
如果沒有,新增秘鑰
ssh-keygen -t rsa -b 4096
輸入保存路徑(默認按回車使用 ~/.ssh/id_rsa)
輸入密鑰密碼(可選但推薦,為空則直接回車)
秘鑰成功生成后,會在本地用戶路徑C:\Users\本地用戶名.ssh文件夾中看到 id_rsa和 id_rsa.pub
3、上傳公鑰至服務器
依然是本地主機 Git bash 輸入
cat ~/.ssh/id_rsa.pub
輸出一段以ssh-rsa開頭 以 郵箱結尾的秘鑰
復制輸出的全部內容,在Ubuntu服務器上執行:
mkdir -p ~/.ssh
echo "粘貼公鑰內容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
檢查服務器中公鑰文件是否存在
ls -l ~/.ssh/authorized_keys
檢查文件中的內容
cat ~/.ssh/authorized_keys
4、配置服務器的公鑰信息
打開ssh_config中關于秘鑰的相關配置
sudo vi /etc/ssh/sshd_config
編輯文件,找到PubkeyAutentication 刪掉前面的#號,并更改為:
保存并退出,修改后重啟ssh服務:
sudo systemctl restart ssh
檢查SSH服務秘鑰是否修改配置成功
sudo grep -E '^PubkeyAuthentication|^AuthorizedKeysFile' /etc/ssh/sshd_config
輸出:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys```
表明此時已允許密鑰認證
檢查秘鑰的權限
ls -ld ~/.ssh && ls -l ~/.ssh/authorized_keys
應該輸出
drwx------ 2 username username 4096 日期 .ssh
-rw------- 1 username username 567 日期 authorized_keys
5、測試連接
在ubuntu服務器中檢查日志
sudo tail -f /var/log/auth.log
會顯示log變化,不要關閉,回到本地windows主機,輸入命令
ssh -i ~/.ssh/id_rsa username@服務器IP -p 端口號
連接成功后,服務器的log中會顯示
Accepted publickey for 服務器主機名 from 本地IP port 本地端口號
等鏈接信息