You need to enable JavaScript to run this app. 如何配置VS Code使用SSH密钥登录远程服务器直接进入appuser
优惠活动
大模型
产品
解决方案
定价
更多

如何配置VS Code使用SSH密钥登录远程服务器直接进入appuser

配置方案

核心要解决两个卡点:一是打通“SSH登录user后自动切换到appuser”的无交互链路,二是避开无读写权限的/home/user目录,让VS Code远程服务能正常落地运行。

第一步:本地SSH客户端配置

编辑本地的SSH配置文件:

  • Windows路径:C:\Users\你的系统用户名\.ssh\config
  • macOS/Linux路径:~/.ssh/config
    在文件中新增对应服务器的配置,完整示例参考:
Host 公司业务服务器
    HostName 你的服务器实际IP/域名
    User user
    # 串联自动切换用户的执行逻辑,实现无交互连接
    ProxyCommand ssh -W %h:%p user@hostname -t "sudo -u appuser /bin/bash"
    # 强制指定VS Code远程服务的落地路径,避开无权限的/home/user目录
    RemoteUploadDirectory /home/appuser/.vscode-server
    # 强制指定登录后的家目录为appuser的合法家目录
    RemoteCommand sudo -u appuser HOME=/home/appuser /bin/bash -l

注意:如果你的终端里执行sudo su - appuser需要手动输入密码,需要提前在服务器上配置user用户的免密sudo规则,不然VS Code的非交互连接会卡在密码输入环节无法继续。规则示例(以root身份执行):
echo "user ALL=(appuser) NOPASSWD: /bin/bash" >> /etc/sudoers.d/appuser_sudo

第二步:公钥配置说明

不需要以appuser身份生成新的密钥对,也不需要给appuser单独开放服务器SSH端口登录权限,只要现有链路能通过user身份sudo切换到appuser,就能满足连接要求:

  • 直接把本地已有的SSH公钥(对应文件一般是~/.ssh/id_ed25519.pub或~/.ssh/id_rsa.pub的全部内容),通过现有终端链路追加到appuser家目录的/home/appuser/.ssh/authorized_keys文件末尾即可
  • 追加完成后确认两个权限合规,否则SSH认证会直接失败:
    • /home/appuser/.ssh 目录权限为700,属主为appuser
    • /home/appuser/.ssh/authorized_keys 文件权限为600,属主为appuser

第三步:VS Code插件侧调整

  • 确认已安装官方Remote - SSH插件
  • 打开VS Code设置,搜索Remote.SSH: Remote Server Upload Directory,将值填写为/home/appuser/.vscode-server
  • 直接在远程连接列表中选择刚才配置的主机名即可完成连接,全程不需要手动执行su切换用户的操作

常见问题排查

  • 连接失败时先在终端输入配置好的SSH别名连接,确认登录后自动切换到appuser身份、当前家目录为/home/appuser、能在该目录下正常创建文件,再尝试VS Code连接
  • 不要将VS Code服务落地目录设置为/tmp,服务器定期清理临时文件会导致每次连接都要重新部署服务端,连接效率极低
  • 如果连接后报“权限拒绝”错误,优先检查是否存在自动切换用户的步骤需要交互输入密码的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 19:36:01