Windows 10/11 使用 VSCode + SSH 免密远程连接 Ubuntu 服务器(指定端口)

摘要
本文详细介绍如何在 Windows 系统上通过 VSCode + Remote-SSH 免密登录远程 Ubuntu 服务器(SSH 端口 2202),避免每次输入密码的繁琐操作,提高开发效率。


1. 环境准备

  • 本地系统:Windows 10/11
  • 远程服务器:Ubuntu(SSH 端口 2202)
  • 工具:VSCode + Remote-SSH 插件

2. 生成 SSH 密钥对(Windows 端)

PowerShellCMD 执行以下命令生成密钥对:

ssh-keygen -t rsa -b 4096
  • Enter 确认默认路径(C:\Users\你的用户名\.ssh\id_rsa)。
  • 不要设置密码(否则仍需输入密码)。

生成后,公钥文件为 id_rsa.pub,私钥文件为 id_rsa


3. 复制公钥到远程服务器

方法 1:使用 scp 上传(需临时密码登录)

scp -P 2202 $env:USERPROFILE\.ssh\id_rsa.pub 用户名@服务器IP:~/.ssh/

输入服务器密码完成上传。

方法 2:手动添加公钥(若已能登录服务器)

  1. 登录服务器:
    ssh -p 2202 用户名@服务器IP
    
  2. 在服务器上执行:
    mkdir -p ~/.ssh
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    rm ~/id_rsa.pub  # 删除临时文件
    

4. 配置 VSCode Remote-SSH

  1. 安装 Remote-SSH 插件

    • 在 VSCode 扩展商店搜索 Remote - SSH 并安装。
  2. 配置 SSH 连接

    • F1Ctrl+Shift+P,输入 Remote-SSH: Open Configuration File,选择 C:\Users\你的用户名\.ssh\config
    • 添加以下内容(替换 服务器IP用户名):
      Host myserver
          HostName 服务器IP
          User 用户名
          Port 2202
          IdentityFile ~/.ssh/id_rsa
      
    • 保存后,VSCode 左侧 Remote Explorer 会显示 myserver
  3. 连接测试

    • 点击 myserver 连接,若无需密码直接进入,则配置成功!

5. 常见问题

Q1:连接失败,提示 Permission denied (publickey)

  • 检查 ~/.ssh/authorized_keys 权限是否为 600
  • 确保 ~/.ssh 目录权限为 700
  • 参考:优快云 博客

Q2:VSCode 连接超时

  • 检查服务器防火墙是否开放 2202 端口
  • 确保 SSH 服务正常运行:
    sudo systemctl status ssh
    

Q3:用户名含中文导致失败

  • 若 Windows 用户名含中文,建议将密钥放在不含中文的路径,并在 config 中修改 IdentityFile 路径。
  • 参考:博客园

6. 总结

通过 SSH 密钥对 + VSCode Remote-SSH,可以高效实现 Windows 免密登录 Ubuntu 服务器(即使 SSH 端口非默认 22)。

  • 优势
    • 无需每次输入密码,提升开发效率。
    • VSCode 可直接编辑远程文件,无缝开发体验。

相关参考

版权声明:本文为原创文章,遵循 CC 4.0 BY-SA 协议,转载请注明出处。


效果截图(可选):

  • VSCode Remote-SSH 连接成功界面
  • ~/.ssh/authorized_keys 文件内容

适用人群

  • 开发者、运维人员、学生等需要远程连接 Linux 服务器的用户。

关键词
Windows SSH 免密登录 VSCode Remote-SSH Ubuntu 2202 端口 SSH 密钥认证


你的支持是我创作的动力!如果对你有帮助,请点赞 + 收藏! 😊

### VS Code SSH 远程服务器初始化配置教程 #### 安装 OpenSSH 客户端和服务端 为了实现通过 SSH 协议连接远程 Ubuntu 服务器,在本地 Windows 系统中需要安装 OpenSSH 的客户端和服务端工具。可以通过 PowerShell 执行以下命令完成安装: ```powershell Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 ``` 上述操作完成后,可以验证是否成功安装并返回如下输出结果[^2]: ``` Path : Online : True RestartNeeded : False ``` 如果未显示 `True` 或者报错,则可能需要重新执行以上命令或者重启计算机。 --- #### 验证远程服务器上的 SSH 服务状态 在目标 Ubuntu 服务器上,需确保其 SSH 服务已正常运行。可通过输入以下命令来检查 SSH 服务的状态: ```bash ps -e | grep ssh ``` 此命令会列出当前正在运行的进程列表,并筛选出与 `ssh` 相关的内容。如果没有看到任何关于 `sshd` 的条目,则表示 SSH 服务尚未启动。此时可尝试手动启用它: ```bash sudo systemctl start ssh ``` 之后再次运行前述命令以确认服务已被激活[^1]。 --- #### 创建并编辑 SSH 密钥文件 为了让 VS Code 能够安全地访问远程主机而无需每次都提供码认证,建议生成一对公私密钥用于身份验证。具体步骤如下所示: 打开终端窗口,键入下面这条指令创建新的 RSA 类型密钥对儿,默认存储路径为用户的 `.ssh/` 文件夹下: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 接着把刚产生的公共部分复制粘贴至远端机器对应账户下的授权钥匙目录里去(通常位于 `/home/<username>/.ssh/authorized_keys`),这样就能登录啦! 另外一种更简便的方法就是借助 `ssh-copy-id` 工具自动完成整个过程: ```bash ssh-copy-id user@remote_host_ip_address ``` 这一步骤对于后续设置至关重要,因为它减少了频繁输入码的可能性,同时也提高了安全性。 --- #### 在 VS Code 中配置 Remote-SSH 插件 下载并安装官方提供的 **Remote Development** 扩展包后,点击左侧活动栏中的绿色图标进入“远程资源管理器”。选择新建连接选项卡,按照提示填写必要的字段信息比如用户名以及 IP 地址等等即可建立初步联系。 当第一次链接某个特定地址时,系统可能会询问是否接受未知主机指纹,请放心同意继续前进就好。随后便会加载该设备的工作区环境供开发者自由探索使用了。 --- #### 常见问题排查 尽管遵循标准流程操作,有时仍可能出现一些意外状况阻碍顺利进展。以下是几个典型例子及其解决方案: 1. 如果遇到 Python 解析器无法识别的情况,可能是由于未能正确定位到远程系统的解释程序位置所致。务必仔细核对该路径无误后再试一次。 2. 对于网络超时类错误消息,检查防火墙规则设定允许外部请求到达指定端口(默认情况下为22号),同时保证路由器转发策略正确指向内部局域网内的计算节点实例[^3]。 --- ### 总结 综上所述,从基础软硬件设施准备到最后实际动手实践环节都做了详细介绍说明。希望这份指南能够帮助初学者快速掌握如何利用 Visual Studio Code 结合 Secure Shell 技术手段达成高效便捷的目标——即随时随地开展基于云端平台之上的编程创作体验旅程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值