VScode SSH遠程連接Ubuntu(通過SSH密鑰對的方式)

????????我們都知道在VScode上通過SSH插件的方式可以遠程連接到虛擬機的Ubuntu系統,這樣開發者就可以在Windows下的Vscode編譯器下直接遠程連接Ubuntu,這種方式是 “用 Windows 的便捷性操作 Linux 的專業性”—— 既保留了Windows系統的易用性和VS Code的強大功能,又能充分利用 Ubuntu(Linux)在開發、部署場景中的優勢,是跨系統開發的高效解決方案。

????????常規的使用SSH Remote插件遠程連接Ubuntu使用密鑰認證的方式,從使用便捷性來說,每次登錄都需手動輸入密碼,無法完全自動化;如果存在多臺服務器,每臺服務器需單獨設置并記憶密碼,管理成本高;從安全性的角度來考慮,如果采用弱密碼,每次登錄需要輸入,存在被截獲并破解的可能;而且如果生產過程中需要通過腳本完成定時的自動化任務,通過SSH密鑰對的方式無需進行交互登錄,畢竟腳本無法自動輸入密碼。

說人話就是每次重新連接不需要我們手動輸入密碼,爽~

那這種又安全又高效又支持自動化的連接方式是如何實現的呢?

一、 準備工作

1. 確保 Ubuntu 虛擬機已安裝 SSH 服務

在 Ubuntu 虛擬機中打開終端,執行以下命令安裝并啟動 SSH 服務:

# 安裝 OpenSSH 服務器
sudo apt update
sudo apt install openssh-server# 啟動 SSH 服務
sudo service ssh start# 設置開機自啟
sudo systemctl enable ssh

我這里已經安裝過openssh-server了,所以我這里顯示“openssh-server is already the newest version (1:8.2p1-4ubuntu0.13).”

2. 查看ubuntu的IP地址

為了方便使用,虛擬機最好是設置為橋接模式而非NAT模式。如果不知道自己是什么模式可以通過查看ubuntu網卡的IP地址與主機的IP地址是否在同一網段來進行簡單的判斷。

橋接模式只需要保證SSH默認端口22開放,主機即可直接通過虛擬機 IP 連接;而NAT模式需額外配置端口轉發才能實現 SSH 連接。

橋接模式NAT 模式
IP 網段與主機同網段(如?192.168.x.x私有網段(如?10.0.2.x),與主機隔離
SSH 連接方式直接通過虛擬機 IP 連接(ssh user@虛擬機IP需端口轉發,通過?主機IP:映射端口?連接(如?ssh user@主機IP -p 2222
網絡可達性主機、局域網設備均可直接訪問僅主機可通過端口轉發訪問,局域網其他設備默認不可達
IP 穩定性可能隨路由器 DHCP 動態變化(建議設靜態 IP)由虛擬機軟件分配,穩定性高(除非重啟 NAT 服務)
配置復雜度簡單(無需額外設置,確保防火墻開放 22 端口)需手動配置端口轉發規則,否則無法連接

在命令行終端輸入:

#查看網絡接口狀態
ifconfig

即可查看到ubuntu的網卡對應的IP地址信息:

3.在Windows上的VScode插件市場中安裝SSH插件

在插件市場中搜索關鍵字SSH,跳出來的第一個插件就是我們需要的Remote SSH插件,我這里已經安裝過了,沒有安裝該插件的右下角應該是"Install"按鈕。

二、確保網絡連接狀態

最簡單的測試網絡連接狀態的方式就是互相ping一下,在第一步中我們已經拿到了Ubuntu的IP地址,類似的我們可以得到Windows的IP地址。

在Windows下使用快捷鍵Ctrl+x,選擇"終端管理員"即可打開Windows下的命令行工具PowerShell

我們在命令行中輸入ipconfig即可查詢到本機的IP地址。(Windows下的查詢命令需要與ubuntu下的ifconfig做區分)

#查看網絡接口狀態(Windows)
ipconfig

拿到ip地址后,我們可以在兩端分別ping一下,看是否能ping通

這樣就說明我們網絡連接沒問題了,這也是我們所有ssh遠程連接的基礎。

三、 在配置SSH連接(通過SSH密鑰對)

1. 生成SSH密鑰對

??在 Windows PowerShell 中執行:

ssh-keygen -t rsa -b 4096

??按提示連續回車,默認將密鑰對生成在?C:\Users\你的用戶名\.ssh\id_rsa?和?id_rsa.pub

我這里已經生成過SSH密鑰了,所以會提示是否需要覆蓋。

接下來是將生成的密鑰通過ssh發送至遠程服務器的?~/.ssh/authorized_keys?文件下,我們在PowerShell中輸入命令:

# 讀取本地公鑰內容
$publicKey = Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub"# 使用 SSH 將公鑰追加到遠程服務器
ssh 用戶名@ubuntu ip地址 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo '$publicKey' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

第一次通過SSH發送會需要我們輸入ubuntu的密碼。(因為我們SSH密鑰對還沒配置好)

四、 配置VScode的SSH連接

打開Windows下的VScode,使用快捷鍵Ctrl+Shift+P打開上面的搜索框,輸入SSH,選擇

"Open SSH Configuration File"->第一個配置文件

可以參照我的配置文件,將對應項修改為自己的服務器配置即可。

Host 10.55.131.104              # 定義一個名為"10.55.131.104"的主機別名(可自定義,建議用 IP 或域名)HostName 10.55.131.104        # 指定實際連接的遠程服務器 IP 地址或域名User kevin                    # 連接時使用的用戶名(遠程服務器的登錄賬號)Port 22                       # 遠程服務器 SSH 服務監聽的端口(默認 22)IdentityFile ~/.ssh/id_rsa    # 指定用于身份驗證的私鑰文件路徑(SSH 密鑰認證)

點擊刷新就會出現我們文件所配置的SSH服務了。

后續我們想要通過SSH遠程連接ubuntu服務器可以直接點擊箭頭,就會自動連接上服務器,而不需要我們輸入密碼了!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88727.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88727.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88727.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

學術繪圖(各種神經網絡)

23種神經網絡設計&可視化工具匯總 下面做簡要羅列,具體請看相關鏈接 1.draw_convnet Github: https://github.com/gwding/draw_convnet? star 數量:1.7k? 這個工具最后一次更新是2018年的時候,一個Python腳本來繪制卷積神經網絡的工…

Redis的高可用性與集群架構

Redis的高可用性與集群架構 引言:解釋高可用性的重要性及Redis如何實現主從復制(Replication) 原理:異步復制,主從數據同步配置方法優缺點分析 哨兵模式(Sentinel) 功能:監控、通知、…

TCP的連接

TCP 三次握手過程是怎樣的?TCP 是面向連接的協議,所以使用 TCP 前必須先建立連接,而建立連接是通過三次握手來進行的。三次握手的過程如下圖:一開始,客戶端和服務端都處于 CLOSE 狀態。先是服務端主動監聽某個端口&…

Excel的學習

一、熟悉界面 1.功能區 點擊“視圖”,點擊凍結窗格,選擇目標行 2.表格區 3.自定義功能區 在上面的空白編輯欄處,右鍵選擇自定義功能區 4.數據輸入規范 (1)格式不統一(日期格式不規范,姓名亂加空格,亂合并單元格) 姓名對齊:右鍵選擇編輯單元格格式,選擇對齊,…

論文閱讀:HybridTrack: A Hybrid Approach for Robust Multi-Object Tracking

論文地址:2501.01275v2 代碼地址:GitHub - leandro-svg/HybridTrack: [RA-L25/ICRA26] HybridTrack: A Hybrid Approach for Robust Multi-Object Tracking 前言 多目標跟蹤旨在在幀間檢測和關聯所有所需的目標。大多數方法通過明確或隱式地利用強大的線索(即空間和外觀信…

EtherCAT開源主站 SOEM 2.0 最新源碼在嵌入式 Linux 下的移植與編譯

EtherCAT 作為工業自動化領域的主流現場總線協議,因其高實時性和高帶寬被廣泛應用。而 SOEM(Simple Open EtherCAT Master)則是開源社區中最受歡迎的 EtherCAT 主站協議棧之一。本文將以 SOEM 2.0 最新源碼為例,詳細介紹其在嵌入式…

面試150 填充每個節點的下一個右側節點指針Ⅱ

思路 采用層序遍歷的方式來連接二叉樹中同一層的節點。首先將根節點加入隊列,然后按層處理節點:每一層依次從隊列中取出節點,并將其 next 指針指向該層中的下一個節點(即隊列中的下一個節點);若是該層最后一…

Windows 本地 使用mkcert 配置HTTPS 自簽名證書

🧩 場景假設 項目本地運行或通過本地 web 服務器(如 Nginx、http-server、vite)訪問 假設域名為 myadmin.local(可以任意命名) 步驟 1:安裝 mkcert 下載 mkcert: 訪問 https://github.com/Fil…

vue3 ref vs reactive值的修改

ref vs reactive reactive 定義的響應式對象不能直接整體修改(即obj1obj2),如果想要修改,可以使用 Object.assign(obj1,obj2) 上述賦值是淺拷貝,對象地址不變,屬性值被修改了淺拷貝:創建一個新對象,這個對象有著原始對象屬性值的一份精確拷貝。如果屬性值是基本類型…

【Datawhale AI 夏令營】 用AI做帶貨視頻評論分析(一)

引言 以訊飛「基于帶貨視頻評論的用戶洞察挑戰賽」的賽事項目為背景,將電商直播帶貨視頻的碎片化用戶評論轉化為可量化的商業洞察信息。其實本質上在于利用自然語言處理、機器學習或者大模型技術,從海量的文本數據中提取有價值的商業洞察。 主要涉及以下…

Vue中的render()函數

在 Vue 中&#xff0c;render() 是一個用于手動編寫組件渲染邏輯的方法&#xff0c;它直接返回虛擬節點&#xff08;VNode&#xff09;&#xff0c;替代模板語法&#xff08;<template>&#xff09;來描述組件的 UI 結構。以下是關于 render() 方法的詳細解析&#xff1a…

板凳-------Mysql cookbook學習 (十一--------9)

13.2 分組描述統計 mysql> select age, count(score) as n,-> sum(score) as sum,-> min(score) as minimum,-> max(score) as maximum,-> avg(score) as mean,-> stddev_samp(score) as std. dev.,-> var_samp(score) as variance-> from testscore-&…

編寫產品需求文檔:黃歷日歷小程序

整理產品需求文檔&#xff1a;黃歷日歷小程序版本&#xff1a;1.0 更新時間&#xff1a;2025-7-9一、文檔概述1.1 產品背景開發一款融合傳統黃歷文化的日歷工具&#xff0c;提供每日吉兇查詢、神煞展示和個人運勢分析功能。1.2 目標用戶關注傳統歷法的中老年群體婚嫁/搬家等需要…

Spring Boot + MyBatis 實現用戶登錄功能詳解(基礎)

一、項目概述做了幾個項目發現有人問到怎么使用springbootHTMLjsCSS開發一個項目呢所以本文將介紹如何使用Spring Boot和MyBatis實現一個完整的用戶登錄功能。系統包含前端登錄頁面、后端控制器、服務層、數據訪問層以及數據庫交互。二、技術棧Spring Boot 2.xMyBatis 持久層框…

adb 簡介與常用命令

1. adb 簡介adb 的全稱為 Android Debug Bridge&#xff0c;就是起到調試橋的作用。借助 adb 工具&#xff0c;我們可以管理設備或手機模擬器的狀態。還可以進行很多手機操作&#xff0c;如安裝軟件、系統升級、運行 shell 命令等等。其實簡而言說&#xff0c;adb 就是連接 And…

阿里云-跨賬號同步OSS Bucket

說明 阿里云A賬號的OSS BUCKET同步到B賬號的指定OSS BUCKET。 賬號Bucket NamesRAM角色A{源buctket}OSS-SYNCERB{目標buctket} 步驟 在阿里云A,B賬號分別建上表buckets, 最好是相同地域的在A號-RAM控制臺建立角色OSS-SYNCER&#xff0c;并賦權AliyunOSSFullAccess&#xff…

uniapp小程序無感刷新token

request.js // request.js import {getApptoken,getStoredApptoken } from ./tokenRequest // 從合并模塊導入// 全局配置 const MAX_RETRIES 1 // 最大重試次數 const baseURL https://your-api.com// 請求隊列和刷新狀態 let requestsQueue [] let isRefreshing false// …

MySQL優化高手筆記

語雀完整版&#xff1a;https://www.yuque.com/g/mingrun/embiys/dv3btw/collaborator/join?tokenzMBwPzSMfSGINLuv&sourcedoc_collaborator# 《MySQL優化高手筆記》MySQL優化高手一、MySQL架構01 天天寫CRUD,你知道你的系統是如何跟MySQL打交道的嗎通過驅動連接數據庫&am…

Git 詳解:從概念,常用命令,版本回退到工作流

本文將從 Git 的核心概念講起&#xff0c;詳細介紹常用命令、各階段版本回退、分支控制以及企業內常見的 Git 工作流。 Git 與 GitHub 簡介 Git 簡介 Git 是一個開源的分布式版本控制系統&#xff0c;由 Linus Torvalds 于 2005 年開發。它與集中式版本控制系統&#xff08;…