一. 概述1
本文主要介绍如何通过 Cursor 的 Remote-SSH 插件直连 JumpServer 所纳管的 Linux-SSH 协议资产,从而进行远程开发。
Cursor 是一款基于 VS Code 内核开发、专注于 AI 辅助编程的跨平台源代码编辑器,支持 Mac OS X、Windows 和 Linux。
主要特性包括:
- 语法高亮、智能补全
- 快捷键自定义、括号匹配、代码片段
- 代码对比 Diff、GIT 命令
- 插件扩展
- 强化 AI 代码生成、错误修复、逻辑优化
- 适合 Web 应用、后端服务及脚本开发
需注意:
- 连接时需在服务器安装客户端(“.cursor-server”),默认安装于登录用户目录(如 root 用户则在 /root)。
- 服务器可连外网时,Cursor 自动下载并安装客户端。
- 服务器无法连外网时,需手动下载或复制已安装的“.cursor-server”目录到目标服务器。
- 复制目录时需确保权限和所属用户与登录用户一致,否则连接失败。建议打包(如 tar)后复制,解压可避免权限问题。
优点
- 插件生态丰富:Cursor 兼容 VS Code 的多数插件,无论是编辑 HTML、CSS、JS、TS、Vue、React 等前端代码,还是 Java、Python、Go 等后端代码,都能找到适配的功能插件,满足不同开发场景需求;
- 远程编辑体验更优:相较于 Xshell、PuTTY 等通过 SSH 命令行连接服务器的工具,Cursor 可直连 JumpServer 资产,直接在编辑器内打开、修改服务器上的文件,无需本地与服务器间反复传输文件;
- 功能集成更高效:除文件编辑外,Cursor 内置终端功能,可直接在编辑器内执行服务器命令(如部署脚本、查看日志等),无需切换多个工具,简化开发流程。
缺点
- 通过该方式直连 JumpServer 的 Linux-SSH 资产时,所有操作(文件修改、命令执行)不会在 JumpServer 中留下操作内容记录与操作录像,无法实现操作审计。
- JumpServer 仅保留基础登录日志(如“某用户登录某资产”),无后续操作追溯依据。
二. 配置 JumpServer 与 Cursor
Cursor的官网地址:https://cursor.com/cn
实现通过 Cursor 的 Remote-SSH 插件直连 JumpServer 所纳管的 Linux-SSH 协议资产还需要在 JumpServer 的配置文件(config.txt)中修改如下:
ENABLE_LOCAL_PORT_FORWARD=true
ENABLE_VSCODE_SUPPORT=true
注意: 修改完配置文件后需要重启堡垒机让配置文件生效。
Cursor 配置
1.安装Cursor 后下载 Remote-ssh 插件(注意: 目前最新版本V1.0.26存在bug, 会导致安装连接服务失败的问题,这里使用V1.0.0的Remote-ssh插件进行连接没有问题)。 具体步骤:在 “扩展” 中搜索 “ Remote-ssh ”,得到插件进行安装。安装后左下角出现蓝色小标,如下图所示。
2.点击左下角绿色标识,中间上方选择 “ Connect to Host... ”
3.点击 Add new SSH Host , 自动跳转到配置文件编辑页面,文件内容如下图所示
Host jumpserverMFA(名称自定义,建议只用字母、数字和下划线,避免特殊字符和空格,确保唯一且简洁)
HostName jumpserverHostIP
User jumpserverUsername@AssetAccount@AssetIP
Port 2222
解释:
- jumpserverUsername:登录 JumpServer 的用户
- AssetAccount:连接资产指定的资产账号
- AssetIP:指定要连接的资产
- jumpserverHostIP:JumpServer 服务 IP
- 2222:KOKO 端口
注:
AssetAccount 是该资产所有授权中,唯一的登录用户名,只匹配一条
AssetIP 是所有资产授权中,唯一匹配到 IP,只匹配一条
4.选择连接的资产,输入登录 JumpServer 的密码。
5.如果开启了MFA 验证, 则会在输入完密码后 弹出让输入 MFA验证码OTP Code
6.资产连接成功 ,左下角会显示目标主机, 打开终端即可对资产进行操作。
(可选)免密登录配置
要实现免密,核心是将 JumpServer 用户的认证方式从密码改为 SSH 公钥认证。
一. 本地生成密钥对
如果还没有密钥对,请在本地机器(运行 Cursor 的电脑)的终端或 PowerShell 中执行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/jumpserver_cursor_key
-t rsa
: 指定密钥类型为 RSA-b 4096
: 指定密钥长度为 4096 位(更安全)-C
: 添加一个注释,通常用邮箱或标识用途-f
: 指定密钥文件的保存路径和文件名。这里示例为~/.ssh/jumpserver_cursor_key
(私钥)和jumpserver_cursor_key.pub
(公钥)
全程回车即可,除非想为私钥设置密码(passphrase)。如果设置了,则每次使用密钥时仍需输入该密码,无法完全免密。为了实现完全免密,请不要设置密码,直接回车。
二. 将公钥添加到 JumpServer 用户账号
点击右上角用户名, 进入 个人信息,然后在右侧认证配置栏中, 点击 更新SSH公钥, 然后在 登录SSH公钥处点击创建, 将公钥文件的全部内容复制粘贴到 JumpServer "SSH 公钥" 的输入框中。
三. 修改Cursor(Remote-SSH)的 SSH 配置文件
Host jumpserverMFA # 自定义的主机别名
HostName jumpserverHostIP # JumpServer 服务器的 IP 地址或域名
User jumpserverUsername@AssetAccount@AssetIP # 连接格式:JumpServer用户@资产账号@资产IP
Port 2222 # JumpServer Koko 组件的端口,默认为 2222
IdentityFile ~/.ssh/jumpserver_cursor_key # 新增:指向本地私钥文件的绝对路径
# PreferredAuthentications publickey # (可选)强制使用公钥认证,如果配置有问题可注释掉
StrictHostKeyChecking no # (可选)避免因跳板机主机密钥变化而连接失败
UserKnownHostsFile /dev/null # (可选)不严格检查 JumpServer 的主机密钥
关键参数说明:
IdentityFile
: 此项为核心新增项,指向生成的私钥文件的路径。PreferredAuthentications
: 如果取消注释,会指示 SSH 客户端优先甚至只使用公钥认证,有助于排除密码认证的干扰。
四. 测试连接
完成以上配置后,再次在 Cursor 中选择 Connect to Host...
-> 选择配置的 jumpserverMFA
。
如果配置成功,Cursor 将自动使用私钥进行认证,不再提示输入 JumpServer 的用户密码,应该会直接连接成功或仅提示输入 MFA 验证码(如果已启用)。
如果连接失败,请检查 Cursor 的输出终端或系统的 SSH 日志(如使用
ssh -v jumpserverMFA
命令调试),常见问题是公钥未正确复制或私钥路径错误
重要补充说明:关于 MFA (OTP)
如果 JumpServer 用户启用了 MFA(多因素认证),即使配置了 SSH 密钥,通常仍然需要手动输入一次性的动态验证码。
SSH 协议本身没有标准机制能自动处理动态令牌。这是出于安全设计,MFA 就是为了防止完全自动化的登录。
因此,“一键连接”仅适用于未启用 MFA 的 JumpServer 用户账号。若需兼顾安全与便利,可考虑仅在特定环境(如测试开发)的账号上禁用 MFA,但需评估安全风险。