?1、OpenSSH介紹
OpenSSH(Open Secure Shell)是一套基于SSH協議的開源工具,用于在計算機網絡中提供安全的加密通信。它被廣泛用于遠程系統管理、文件傳輸和網絡服務的安全隧道搭建,是保護網絡通信免受竊聽和攻擊的重要工具。
1.1、核心功能
安全遠程登錄
-
ssh?命令:通過加密通道登錄遠程主機(如?
ssh user@hostname
)。 -
替代不安全的Telnet和rlogin,防止密碼和會話內容被截獲。
文件傳輸
-
scp:加密的跨系統文件拷貝(如?
scp file.txt user@host:/path
)。 -
sftp:交互式加密文件傳輸(類似FTP的安全版本)。
端口轉發(隧道)
-
本地轉發:將本地端口流量通過SSH隧道轉發到遠程服務器。
-
遠程轉發:將遠程服務器端口流量轉發回本地。
-
動態轉發:創建SOCKS代理,靈活轉發多種流量。
密鑰管理
-
支持公鑰認證(無需每次輸入密碼),通過?
ssh-keygen
?生成密鑰對。 -
密鑰可存儲在?
~/.ssh/authorized_keys
?中實現免密登錄。
服務端支持
-
sshd:OpenSSH的服務端守護進程,監聽默認端口22。
-
通過?
/etc/ssh/sshd_config
?配置文件調整安全策略(如禁用密碼登錄)。
1.2、安全特性
-
強加密算法:使用AES、ChaCha20等加密數據,Diffie-Hellman密鑰交換確保會話安全。
-
協議版本:推薦SSH-2(修復SSH-1的漏洞),默認禁用舊版協議。
-
防中間人攻擊:首次連接時記錄主機指紋,后續驗證防止偽裝。
-
審計與日志:詳細日志記錄(
/var/log/auth.log
?等)便于追蹤訪問行為。
1.3、典型應用場景
遠程服務器管理:運維人員通過SSH安全管理Linux/Unix服務器。
自動化腳本與工具:結合SSH密鑰實現無人值守備份、CI/CD流水線等。
跨防火墻訪問:通過隧道訪問內網服務(如數據庫、Web管理界面)。
安全文件傳輸:取代FTP,用于敏感數據的加密傳輸。
1.4、配置優化與安全實踐
禁用密碼登錄:僅允許公鑰認證,防止暴力破解。
# 修改sshd_config
PasswordAuthentication no
限制用戶與IP:僅允許特定用戶或IP段訪問。
AllowUsers admin@192.168.1.0/24
更改默認端口:減少自動化攻擊風險(如?Port 2222
)。
禁用Root登錄:降低權限濫用風險。
PermitRootLogin no
更新與漏洞防護:保持OpenSSH版本最新,及時修復安全漏洞。
1.5、優勢總結
-
開源免費:可自由使用、審計和修改代碼。
-
跨平臺支持:適用于Linux、Windows(通過WSL或OpenSSH for Windows)、macOS等。
-
社區強大:持續更新維護,及時響應安全威脅。
2、配置OpenSSH
2.1、安裝OpenSSH服務器
更新系統:
sudo apt update && sudo apt upgrade -y
安裝 OpenSSH Server:
sudo apt install openssh-server -y
啟動并啟用 SSH 服務:
sudo systemctl start ssh
sudo systemctl enable ssh # 設置開機啟動
檢查 SSH 服務狀態:
sudo systemctl status ssh
2.2、配置 SSH 安全性
修改默認端口(可選,但推薦):
編輯 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
找到 #Port 22
,取消注釋并修改為一個非標準端口(例如 2222):
Port 2222
禁用 root 登錄(推薦):
在 /etc/ssh/sshd_config
中找到以下行,取消注釋:#PermitRootLogin prohibit-password
PermitRootLogin no
2.3、配置防火墻
安裝 UFW(可選):
sudo apt install ufw -y
允許 SSH 端口:
sudo ufw allow 602/tcp? # 替換為你的 SSH 端口
啟用防火墻:
sudo ufw enable
3、使用vscode遠程資源管理器遠程連接
3.1、打開配置文件
/Users/wq/.ssh/config
- 特點:這是用戶目錄下的SSH配置文件,通常用于存儲特定用戶的SSH配置。
- 適用場景:當您只需要修改自己的SSH配置,且不需要系統管理員權限時,選擇此選項是合適的。
- 影響范圍:僅影響當前用戶,不會影響其他用戶或系統范圍的SSH配置。
/etc/ssh/ssh_config
- 特點:這是系統范圍的SSH配置文件,它影響所有用戶和SSH連接。
- 適用場景:當您需要修改整個系統的SSH配置,且您擁有管理員權限時,可以選擇此選項。但請謹慎操作,因為這會影響所有用戶。
- 影響范圍:更改此文件會影響整個系統的SSH配置。
設置指定自定義配置文件
- 特點:此選項允許您指定一個不同于上述兩個位置的自定義配置文件。
- 適用場景:當您需要更大的靈活性,或者需要與其他用戶或系統共享配置文件時,可以選擇此選項。
- 影響范圍:取決于您指定的配置文件路徑和權限設置。
3.2、配置信息
打開SSH配置,可以進行配置的增刪改查,保存文件即可。
3.3、遠程連接
?安裝 Remote-SSH 插件
連接方式1
-v
?參數:表示啟用詳細模式(verbose mode)。在這種模式下,SSH 客戶端會輸出詳細的調試信息,包括連接過程中的每一步操作、加密協商、認證過程等。
連接方式2
?在客戶端(如本地電腦)打開終端,使用以下命令連接到服務器:
ssh -v -p 602 wangqiang@192.168.2.22? # 替換端口、用戶名和服務器 IP
# 通過終端進行連接 (dify) wq@wqdeMacBook-Pro dify % ssh -v -p 602 wangqiang@192.168.2.22
OpenSSH_9.9p1, LibreSSL 3.3.6
debug1: Reading configuration data /Users/wq/.ssh/config
...
...Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 6.8.0-58-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/pro擴展安全維護(ESM)Applications 未啟用。0 更新可以立即應用。2 個額外的安全更新可以通過 ESM Apps 來獲取安裝。
可通過以下途徑了解如何啟用 ESM Apps:at https://ubuntu.com/esmNew release '24.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.*** System restart required ***
wangqiang@wangqiang:~$
# 退出遠程wangqiang@wangqiang:~$ exit
注銷
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to 192.168.2.22 closed.
Transferred: sent 3644, received 4388 bytes, in 158.5 seconds
Bytes per second: sent 23.0, received 27.7
debug1: Exit status 0
(dify) wq@wqdeMacBook-Pro dify %