VS Code 通过 Remote - SSH 扩展依赖系统 ~/.ssh/config 实现远程连接,需严格按格式配置 Host、HostName、User、IdentityFile 等字段,确保权限、路径和密钥格式正确,并用 ssh -v 验证连通性。

VS Code 本身不内置 SSH 连接管理器,但通过 Remote - SSH 扩展可直接连接远程主机并编辑文件,体验接近本地开发——关键不是“管理连接”,而是“复用连接配置 + 避免密码反复输入”。
如何配置 ~/.ssh/config 让 VS Code 自动识别主机
VS Code 的 Remote - SSH 扩展完全依赖系统 SSH 配置文件,不读取 VS Code 内部设置。必须把连接信息写进 ~/.ssh/config,格式严格:
Host myserver
HostName 192.168.1.100
User john
IdentityFile ~/.ssh/id_rsa_prod
Port 2222-
Host是你在 VS Code 里看到和选择的别名(如myserver),不能含空格或下划线 -
HostName必须是 IP 或可解析的域名;User和IdentityFile建议显式指定,避免连接时反复提示 - 如果私钥有密码,首次连接后 VS Code 会缓存解密后的句柄,后续自动复用(前提是 ssh-agent 正常运行)
- Windows 用户注意:VS Code 默认使用 WSL 或系统 OpenSSH,确认
ssh命令在终端中能直接执行该配置
连接失败时先检查这三件事
常见报错如 Could not establish connection to "myserver" 或 Permission denied (publickey),优先验证底层连通性:
1.) 将所有文件解压到php环境中,本程序才用smarty+php+mysql设计。如果运行不了,请修改hhy文件夹下的smarty.php文件改法请看说明2.) 修改configs下的config.inc.php下的连接数据库的密码和用户名3.) 本程序没有做安全页面,人工导入sql.inc到mysql数据库。管理员初始化帐号为admin,密码为hhy。后台地址:http://你的网站地址/h
- 在终端运行
ssh -F ~/.ssh/config -v myserver,看是否真正走到认证阶段(-v 输出会显示加载了哪个 key、尝试了哪些 auth 方法) - 确认远程主机
sshd允许公钥登录:grep -E '^(PubkeyAuthentication|PasswordAuthentication)' /etc/ssh/sshd_config,应为PubkeyAuthentication yes - 若用 WSL 连 Windows 主机,注意 Windows OpenSSH Server 默认禁用密码登录且不启用
sshd服务——需手动在“设置 > 应用 > 可选功能”中启用并启动服务
多个跳转主机(Jump Host)怎么配
内网机器无法直连?用 ProxyJump 比嵌套 ProxyCommand 更简洁可靠:
Host jump
HostName bastion.example.com
User admin
Host internal
HostName 10.0.1.5
User dev
ProxyJump jump
IdentityFile ~/.ssh/id_rsa_internal
-
ProxyJump会自动复用jump的连接,无需额外配置 netcat 或 nc - 确保跳板机上已开启
AllowTcpForwarding yes(默认开启),否则ProxyJump会静默失败 - VS Code 连接
internal时,会自动按顺序建立两层 SSH 隧道,整个过程对用户透明
真正卡住的往往不是 VS Code 界面操作,而是 ~/.ssh/config 的缩进、大小写、路径权限(比如 ~/.ssh 目录权限不能是 777)、或私钥格式(OpenSSH 格式 vs PuTTY 的 .ppk)。改完配置别忘了 ssh-add -D && ssh-add ~/.ssh/id_rsa_prod 刷新 agent 缓存。









