You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置VS Code SFTP扩展以适配1Password SSH代理?

解决VS Code SFTP扩展连接DigitalOcean Droplet的认证失败问题

针对你用1Password作为SSH代理托管密钥的场景,以下是可直接复用的sftp.json配置方案,核心是让SFTP扩展正确调用SSH代理而非直接指定密钥文件:

方案1:复用本地.ssh/config配置(推荐)

如果你的~/.ssh/config已经能正常通过SSH连接Droplet(比如配置了Host do-droplet的别名),直接在sftp.json中引用这个别名即可:

{
  "name": "DigitalOcean Droplet",
  "host": "do-droplet", // 替换为你.ssh/config里的Host别名
  "protocol": "sftp",
  "port": 22,
  "username": "your-remote-user", // 替换为Droplet的用户名(如root或自定义sudo用户)
  "remotePath": "/path/to/your/remote/project", // 替换为远程项目的根路径
  "uploadOnSave": true, // 可选:本地保存文件时自动同步到远程
  "useAgent": true, // 必须开启:启用SSH代理(1Password托管密钥的核心)
  "agent": "$SSH_AUTH_SOCK", // 自动读取系统SSH代理的socket路径
  "ignore": [
    ".vscode",
    ".git",
    "node_modules",
    "*.log"
  ] // 可选:忽略不需要同步的文件/文件夹
}

方案2:直接在sftp.json中配置代理

如果不想依赖.ssh/config,可直接指定代理相关参数:

{
  "name": "DigitalOcean Droplet",
  "host": "your-droplet-ip", // 替换为Droplet的公网IP或域名
  "protocol": "sftp",
  "port": 22,
  "username": "your-remote-user",
  "remotePath": "/path/to/your/remote/project",
  "uploadOnSave": true,
  "useAgent": true,
  "agent": "$SSH_AUTH_SOCK",
  // 注意:不要添加privateKey字段,因为密钥由1Password代理托管
  "ignore": [
    ".vscode",
    ".git",
    "node_modules"
  ]
}

关键注意事项

  • 不要添加privateKey字段:你的密钥由1Password的SSH代理托管,SFTP扩展通过代理获取密钥,硬写密钥路径会导致认证失败。
  • 确认VS Code加载了SSH_AUTH_SOCK:重启VS Code确保环境变量正确读取,避免代理路径失效。
  • 验证1Password代理状态:终端执行ssh-add -l确认能看到托管的密钥,且1Password的SSH代理功能已开启。
  • 远程服务器配置检查:确保Droplet的/etc/ssh/sshd_config中开启了AllowAgentForwarding yes(默认已开启,若修改过需确认)。

内容的提问来源于stack exchange,提问作者headmeetwall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:52:13