news 2026/7/8 12:27:13

VSCode 远程连接配置指南:Windows 环境下 SSH 公钥免密登录实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VSCode 远程连接配置指南:Windows 环境下 SSH 公钥免密登录实践

摘要:本文详细介绍了在 Windows 环境下,为 VSCode 配置 SSH 公钥免密登录远程 Linux 服务器的完整流程。内容涵盖从背景目的、环境要求,到生成 SSH 密钥对、部署公钥至服务器、验证免密登录状态,以及最终在 VSCode 中配置 SSH Config 的具体步骤。文章最后还提供了常见问题(如连接仍需密码、私钥文件权限警告)的排查方法,旨在帮助开发者实现高效、安全的远程开发环境搭建。

1. 背景与目的

在使用 VSCode 的 Remote-SSH 插件连接 Linux 服务器时,默认采用密码验证机制。每次新建窗口、重载窗口或网络波动导致断线重连时,均需重新输入密码,这在一定程度上影响了开发效率。

通过配置 SSH 公钥免密登录,可以实现以下目标:

  • 消除频繁输入密码的交互中断。
  • 提升身份验证的安全性(基于非对称加密)。
  • 加快连接建立的速度。

2. 环境要求

  • 本地操作系统:Windows 10 / Windows 11(需启用 OpenSSH Client)。
  • 远程操作系统:Linux 发行版(如 Ubuntu, CentOS, Debian 等)。
  • 开发工具:Visual Studio Code 及 Remote-SSH 扩展。

3. 配置步骤

3.1 在本地生成 SSH 密钥对

打开 PowerShell 或命令提示符(CMD),执行以下命令生成 RSA 密钥对:

ssh-keygen -t rsa -b 4096

执行过程中的交互提示处理如下:

  1. Enter file in which to save the key...:按回车键,使用默认路径(通常为C:\Users\<用户名>\.ssh\id_rsa)。
  2. Enter passphrase (empty for no passphrase)::按回车键,留空。若设置密码,后续连接仍需输入该密码,无法实现完全免密。
  3. Enter same passphrase again::再次按回车键。

当终端输出Your identification has been saved in...Your public key has been saved in...时,表明密钥生成成功。

3.2 将公钥部署至远程服务器

需将本地生成的公钥文件(id_rsa.pub)内容追加至远程服务器的~/.ssh/authorized_keys文件中,并设置严格的文件权限。

在 PowerShell 中执行以下命令(请将<用户名><ip>替换为实际值):

type C:\Users\<用户名>\.ssh\id_rsa.pub | ssh <用户名>@<ip> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

注意事项:

  • 执行此命令时,系统会要求输入最后一次服务器密码。
  • 若命令执行完毕后,终端光标直接返回且无任何报错信息,则表明公钥已成功写入。
  • chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys为必要操作。OpenSSH 对权限要求严格,若目录或文件权限过于开放,服务器将拒绝基于密钥的认证。

3.3 验证免密登录状态

在配置 VSCode 之前,建议先在终端层面验证 SSH 配置是否生效:

ssh <用户名>@<ip>

若无需输入密码即可直接进入远程服务器的 Shell 环境,则底层 SSH 免密配置已成功。

3.4 配置 VSCode SSH Config

  1. 在 VSCode 中按下Ctrl + Shift + P,输入并选择Remote-SSH: Open SSH Configuration File
  2. 选择本地配置文件(通常为C:\Users\<用户名>\.ssh\config)。
  3. 在文件中添加或修改以下配置项:
Host MyLinuxServer HostName <ip> User <用户名> IdentityFile C:\Users\<用户名>\.ssh\id_rsa ServerAliveInterval 60

配置说明:

  • IdentityFile:必须指向本地私钥的绝对路径,确保 VSCode 能够正确读取。
  • ServerAliveInterval 60:可选配置。设置客户端每 60 秒向服务器发送一次保活包,有效防止因长时间无操作导致的连接断开。

4. 常见问题排查

问题 1:配置完成后,连接时仍提示输入密码

  • 检查文件权限:登录服务器,执行ls -ld ~/.sshls -l ~/.ssh/authorized_keys,确认目录权限为drwx------(700),文件权限为-rw-------(600)。
  • 检查私钥路径:确认 VSCode 配置文件中的IdentityFile路径正确,且文件确实存在。

问题 2:终端提示WARNING: UNPROTECTED PRIVATE KEY FILE!
这是由于 Windows 环境下私钥文件的访问控制列表(ACL)权限过于宽松所致。可在 PowerShell 中执行以下命令收紧权限:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 12:22:01

微信小程序开发公司怎么选?功能、售后和上线周期分析

微信小程序开发公司怎么选&#xff1f;功能、售后和上线周期分析微信小程序开发公司怎么选&#xff0c;要先把“开发”拆成几个具体环节&#xff1a;需求梳理、页面设计、后台配置、资料准备、审核上线、基础运维和后期维护。很多小程序项目不是卡在写代码&#xff0c;而是卡在…

作者头像 李华
网站建设 2026/7/8 12:20:52

0707——RAG实现demo功能拓展

1&#xff0c;扩展后rag整体语义分块模型 gemma【添加】:2b&#xff1a;PDF 原始长文本 → 完整语义 Chunk&#xff08;预处理一次性调用&#xff09;嵌入模型 mxbai-embed-large&#xff1a;Chunk → 语义向量&#xff08;入库、检索提问时调用&#xff09;生成大模型 deepsee…

作者头像 李华
网站建设 2026/7/8 12:19:06

6DOF IMU运动数据采集系统设计与优化

1. 项目背景与硬件选型解析在运动数据采集领域&#xff0c;6自由度惯性测量单元(6DOF IMU)因其能够同时检测线性加速度和角速度的特性&#xff0c;成为姿态识别、运动追踪等应用的核心器件。本次项目采用Bosch BMI160传感器与Microchip PIC32MX695F512L微控制器的组合方案&…

作者头像 李华
网站建设 2026/7/8 12:18:34

IIM-20670运动传感器与STM32F303ZE硬件适配方案

1. IIM-20670运动传感器深度解析 IIM-20670是TDK InvenSense推出的一款高性能6轴运动跟踪传感器&#xff0c;集成了三轴陀螺仪和三轴加速度计。这款传感器采用专利的CMOS-MEMS制造工艺&#xff0c;在4x4x0.9mm的紧凑封装内实现了工业级性能指标。 1.1 核心性能参数 陀螺仪部分…

作者头像 李华
网站建设 2026/7/8 12:17:51

PostgreSQL 18 主从架构实战:3步配置流复制,实现读写分离与高可用

PostgreSQL 18 主从架构实战&#xff1a;3步配置流复制&#xff0c;实现读写分离与高可用在当今数据驱动的业务环境中&#xff0c;数据库的高可用性和读写分离能力已成为企业级应用的标配。PostgreSQL 18 作为最新版本的开源关系型数据库&#xff0c;其流复制功能为企业提供了稳…

作者头像 李华