引言
在之前的博客Ubuntu SSH密鑰登錄:告別密碼 - 杜文龍 - 博客園中,我詳細介紹瞭如何使用FinalShell從Windows連接到Linux服務器,實現安全的密鑰認證登錄。今天,我將分享如何在VS Code中使用Remote SSH擴展來實現同樣的功能,讓你在熟悉的代碼編輯器中直接操作遠程服務器。
環境準備
服務器環境
- 操作系統:Ubuntu 22.04.5 LTS
- SSH服務:OpenSSH Server
- 用户權限:具有sudo權限的用户
客户端環境
- 操作系統:Windows 10/11
- 編輯器:VS Code
- 擴展:Remote SSH
配置步驟
1. 安裝Remote SSH擴展
VS Code的Remote SSH擴展允許你通過SSH連接到遠程主機,並在本地VS Code中編輯遠程文件。
擴展ID:ms-vscode-remote.remote-ssh
如果你還沒有安裝,可以在VS Code擴展市場搜索"Remote SSH"安裝。
2. 配置SSH密鑰
假設你已經按照之前的博客在服務器上配置了SSH密鑰登錄,並且在FinalShell中測試通過。
將私鑰文件複製到本地Windows的SSH目錄:
# 私鑰文件路徑(示例)
C:\Users\用户名\.ssh\id_ed25519
3. 配置SSH config文件
在Windows的PowerShell中,打開SSH配置文件:
notepad $HOME\.ssh\config
添加以下配置:
Host my-linux-server
HostName 【服務器IP】 # 替換為你的服務器實際IP
User 服務器用户名 # 替換為你的服務器用户名
Port 22
IdentityFile "C:\Users\用户名\secure_keys\ubuntu_server.key" #替換為你的ubuntu_server.key的地址
IdentitiesOnly yes # 明確指定使用此密鑰
保存文件。
4. 連接到遠程服務器
- 在VS Code中,打開Remote Explorer(側邊欄的遠程資源管理器圖標)。
- 點擊"+"按鈕,選擇"Add New SSH Host"。
- 輸入:
ssh [替換你的服務器用户名@服務器IP]#例如 duwl@192.168.1.101 - 選擇SSH配置文件(通常是
C:\Users\用户名\.ssh\config)。 - 點擊"Connect"。
首次連接時,VS Code會提示輸入私鑰密碼(passphrase)。輸入你在生成密鑰時設置的密碼。
連接成功後,你會看到VS Code的界面變成了遠程模式,標題欄顯示"[SSH: my-linux-server]"。
5. 驗證連接
在VS Code的終端中(Ctrl+` 打開),運行以下命令驗證:
# 查看系統信息
uname -a
# 查看當前用户
whoami
# 查看當前目錄
pwd
# 測試網絡連接
ping -c 3 8.8.8.8
安全注意事項
- 私鑰保護:確保私鑰文件權限正確(Windows下無需特殊設置,但不要分享給他人)。
- 密碼管理:定期更換私鑰密碼。
- 防火牆:確保服務器防火牆只允許必要的端口。
- 日誌監控:定期檢查SSH登錄日誌。
優勢
相比FinalShell,VS Code Remote SSH提供:
- 完整的代碼編輯功能
- 插件生態系統
- 集成的終端
- 文件管理
- 調試支持
故障排除
如果連接失敗:
- 檢查SSH服務狀態:
sudo systemctl status ssh - 驗證私鑰權限:私鑰文件應只有所有者可讀
- 檢查網絡連接:確保服務器IP可達
- 查看日誌:
sudo journalctl -u ssh --since "today"
總結
通過VS Code Remote SSH,你可以在本地舒適的環境中高效地開發和維護遠程Linux服務器。結合之前的密鑰配置,這是一種既安全又便捷的遠程工作方式。