安全模型
当您的工作涉及访问远程服务器时,您需要确保本地计算机与后端之间的连接是安全的,并且往返的数据经过充分加密。
远程开发的安全模型可让您控制几乎所有与工作相关的安全方面。
IDE 组件在服务器端与客户端均有运行。后端加载的任何信息都可能在未经进一步用户交互的情况下被转发到客户端,客户端提供的任何信息也可能在未经进一步用户交互的情况下被传输到服务器端进程。 后端加载的任何信息都可能在未经进一步用户交互的情况下被转发到客户端,客户端提供的任何信息也可能在未经进一步用户交互的情况下被传输到服务器端进程。
连接安全
即使在安全的 SSH 隧道中,JetBrains Client 与 IDE 后端之间的通信也会通过 TLS 1.3 进行端到端加密。 JetBrains 使用 TLS 1.3,并在其基础上再使用 SSH 安全连接。
由于远程开发中不存在来自根证书的信任层级,因此会执行额外的人工验证以确保没有中间人攻击。
常规的连接链接如下所示:
连接时,客户端会验证主机证书的指纹是否精确为
fp。 这可向客户端确认主机是正确的(未被第三方劫持)连接时,主机会检查客户端是否提供了一次性连接令牌
jt。 未获取该令牌的任何连接请求都将被拒绝。
通过此连接传输任何身份验证信息或在公共空间中传递该连接数据都是安全的。 这与 Code With Me 中的做法一致。
收集日志和统计信息
JetBrains collects statistics and logs with your permissions. 默认情况下,所有正式版本中禁用数据共享,GoLand 的 预览版及 EAP(Early Access Program)中启用该功能。
配置数据共享
选中 发送使用统计 复选框以允许 JetBrains 收集与您在 GoLand 中使用的功能和操作相关的匿名统计数据。

选中 使用 EAP 版本时发送使用统计 复选框以允许 JetBrains 收集与您在 GoLand 中使用的功能和操作相关的统计数据。

如需了解有关收集与使用这些数据的详细信息,请参阅 数据共享设置。
收集日志
当 JetBrains 要求您收集并发送日志时,也会提示您日志可能包含敏感数据。
在主菜单中,转到 。
在打开的对话框中,如同意将数据发送给 JetBrains,请单击 在 Finder 中显示。

有关 JetBrains 隐私政策的完整信息,请参见 JetBrains 官网。
打开任意链接
IDE 在使用某些功能时,可能需要打开浏览器。 请注意,服务器端没有浏览器。 在此情况下,请求将被重定向到 JetBrains Client。
在客户端计算机上打开任意链接之前,JetBrains 会显示一个确认对话框。
复制与粘贴操作
复制 / 粘贴 操作仅在实际粘贴之前发送剪贴板内容,并仅在实际复制期间允许后端更改剪贴板。
SSH 转发设置
SSH 转发 设置允许您使用 SSH 密钥转发功能来自远程服务器验证对 Git 仓库的访问。 或者,您可以使用 SSH-agent 辅助程序实现相同的效果。
访问 SSH 转发设置
按 Ctrl+Alt+S 打开设置,然后选择 。
在右侧的选项中,选择 启用 SSH 代理转发 并单击 确定 保存更改。

端口转发
您可以通过将远程服务器上的端口转发到本地计算机来访问该端口。 这在调试或者绕过防火墙时可能会很有帮助。
通过运行工具窗口转发远程端口
启动远程会话并打开您的项目。
运行应用程序。
在 运行 工具窗口中,应用程序将显示监听端口。

单击一个您希望转发的端口,在选项列表中选择 转发端口。
如果想在转发之后打开浏览器,请选择 转发端口并在浏览器中打开。
结果是,远程端口已转发到本地计算机。

单击所创建的端口以在浏览器中查看结果。

通过后端控制中心管理端口转发
您可以通过后端控制中心添加、删除或编辑端口。
添加端口
打开您的远程项目。
在主工具栏中,单击后端名称以打开后端控制中心窗口。

在打开的窗口中,切换到 端口 选项卡,点击
添加新端口。
您可以使用
删除端口。 在项目重新启动时,该端口也将从
forwardedPorts.xml文件中移除。在建议字段中输入端口号并单击 应用 保存更改。

已添加的端口将保存到
forwardedPorts.xml文件中。重新启动项目以便在
forwardedPorts.xml文件中查看已添加的端口。
移除端口
打开您的远程项目。
在主工具栏中,单击后端名称以打开后端控制中心窗口。
在打开的窗口中,切换到 端口 标签页,选择要移除的端口并点击
。
在项目重新启动后,该端口也将从
forwardedPorts.xml文件中移除。
更改端口
在打开的窗口中,切换到 端口 选项卡,点击
添加新端口。
在建议字段中输入端口号,并在点击 应用 保存更改之前,通过点击端口地址字段修改端口号。

请注意以下事项:
如果您停止转发端口,且该端口未在其他打开的项目中使用,则它将从
forwardedPorts.xml文件中移除。当您关闭应用程序时,端口转发将停止。 在重新打开项目时,端口将从
forwardedPorts.xml文件中加载(按项目),随后转发并显示在相应位置。
禁用端口转发
出于安全原因,您可以为特定用户或整个系统禁用端口转发设置。
更改应在宿主 IDE 侧进行。
对于特定用户设置,在以下目录中创建文本文件:
对于系统范围设置,请在以下目录中创建文本文件:
对于特定用户设置,在以下目录中创建文本文件:
对于系统范围设置,请在以下目录中创建文本文件:
对于特定用户设置,请使用以下注册表键:
对于系统范围设置,请使用以下注册表键:
在 SOFTWARE\JetBrains\portForwarding 目录中创建启用此设置值的键。
为用户或整个系统禁用端口转发
出于安全目的,您可以通过使用 OsRegistryConfigProvider 操作系统注册表为特定用户或整个系统完全禁用端口转发(porForwarding)。 注册表的位置取决于您的操作系统。
对于特定用户设置,在以下目录中创建文本文件:
对于系统范围设置,请在以下目录中创建文本文件:
对于特定用户设置,在以下目录中创建文本文件:
对于系统范围设置,请在以下目录中创建文本文件:
对于特定用户设置,请使用以下注册表键:
对于系统范围设置,请使用以下注册表键:
在 SOFTWARE\JetBrains\portForwarding 目录中创建启用此设置值的键。
如果键不存在,则默认认为该设置为 true。
反向端口转发
您可以配置反向端口转发,以从远程计算机发起到本地计算机的连接。 例如,如果您在移动设备上开发应用程序,或正在开发一个远程位置应用程序且该应用程序需要访问本地计算机上的数据库,这将非常有用。 反向端口转发是持久的,因此在重新连接或打开项目时会自动进行端口转发。
在使用反向端口转发时,存在一些潜在的安全风险,您需要加以考虑和规避:
- 未授权访问
请确保仅在与完全信任的服务器或人员使用反向端口转发。
- 数据暴露
请确保在转发敏感数据时进行加密。
- 恶意软件
请确保您的计算机上的安全工具已定期更新。
配置反向端口转发
打开您的远程项目。
打开 后端控制中心。
在打开的窗口中,点击 端口 标签页,然后单击
添加新端口并选择 本地到远程。
在端口字段中输入所需端口号后点击 应用。

在打开的对话框中,请确保您信任请求端口转发的远程服务器,然后点击 允许。

持久化反向端口转发
连接到您的远程项目。
在远程项目中,按两次 Shift 打开 Search Everywhere 窗口,输入 注册表。

请确保同时在后端主机和前端 IDE 上启用标志。
打开 注册表(主机上) 工具窗口(后端),然后检查
portForwarding.store.reverse.enabled标志。
打开 注册表 工具窗口(前端),然后检查
rdct.portForwarding.store.reverse.enabled标志。
反向端口转发会被持久化。 反向端口的信息存储在 forwardedPorts.xml 文件的 reversePorts 部分中。
更改 JetBrains Client 的下载位置
下载完成后,您可以重新定义 JetBrains Client 的文件夹和文件的存储位置。
针对特定用户的设置,请在以下目录中创建一个文本文件:
文件内容为 path/to/directory。
针对系统范围的设置,请在以下目录中创建一个文本文件:
文件内容为 path/to/directory。
针对特定用户的设置,请在以下目录中创建一个文本文件:
文件内容为 path/to/directory。
针对系统范围的设置,请在以下目录中创建一个文本文件:
文件内容为 path/to/directory。
针对特定用户的设置,请使用 HKEY_CURRENT_USER 注册表。
针对系统范围的设置,请使用 HKEY_LOCAL_MACHINE 注册表。
在 SOFTWARE\\JetBrains\\JetBrainsClient 中创建一个键 downloadDestination ,其值应包含 path/to/directory。