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

VS Code Remote SSH连接报Permission denied如何解决

VS Code Remote SSH连接CentOS报Permission denied解决方案

首先修正本地SSH配置文件的错误,你当前配置存在明显问题:

  • Host字段是本地自定义的远程主机别名,HostName字段不能和别名填成一样的app-ff,必须填写远程CentOS主机的实际内网/公网IP地址,如果公司修改了SSH默认22端口,还要额外加Port字段指定端口。
  • 新增IdentitiesOnly yes配置,强制SSH客户端只使用你指定的私钥做认证,避免本地存储的其他密钥干扰认证流程。

修正后的配置参考:

Host app-ff
  HostName 替换为公司CentOS的实际IP地址
  User cayhan
  Port 22  # 非默认端口替换成实际端口
  IdentityFile C:\Users\cayhan\.ssh\id_rsa
  IdentitiesOnly yes

接下来按顺序排查认证相关问题:

  • 核对私钥正确性
    SmarTTy默认会把连接用的私钥存在自身安装目录下,不会自动同步到Windows用户目录的.ssh文件夹,先确认你C:\Users\cayhan\.ssh\id_rsa这个文件确实是和远程主机/home/cayhan/.ssh/authorized_keys里存储的公钥匹配的私钥,如果拿错了私钥,或者私钥是SmarTTy专属格式不是标准OpenSSH格式,会直接导致密钥认证失败,回退到密码认证流程。
  • 修正两端文件权限
    SSH对密钥相关文件的权限要求极严格,权限不符合要求会直接拒绝认证:
    • 本地Windows端:右键点击C:\Users\cayhan\.ssh\id_rsa文件,打开「属性-安全-高级」,禁用权限继承,删除所有除了你当前Windows登录账号之外的权限主体,仅保留当前账号的读取权限,避免OpenSSH因为私钥权限过于开放拒绝加载。
    • 远程CentOS端:先用能正常连接的SmarTTy登录服务器,依次执行以下命令修正权限:
      chmod 700 /home/cayhan/.ssh
      chmod 600 /home/cayhan/.ssh/authorized_keys
      chown -R cayhan:cayhan /home/cayhan/.ssh
      
  • 核对远程SSH服务配置
    还是在SmarTTy的远程会话里,编辑SSH服务配置文件/etc/ssh/sshd_config,确认以下配置项状态:
    PubkeyAuthentication yes # 开启公钥认证
    PasswordAuthentication yes # 如果你需要用密码登录必须开启,不少运维默认会关闭密码认证
    
    修改完成后执行systemctl restart sshd重启SSH服务让配置生效。
  • 排查VS Code侧配置问题
    • 打开VS Code设置,搜索remote.SSH.path,指定为Windows自带OpenSSH的路径C:\Windows\System32\OpenSSH\ssh.exe,不要使用Git捆绑的旧版本SSH客户端,避免兼容问题。
    • 连接失败时点开VS Code底部输出面板,选择「Remote - SSH」通道查看详细日志:如果日志显示公钥认证被拒绝,回到前面的步骤核对密钥和权限;如果显示主机解析失败,检查HostName填写的IP是否正确。
    • 如果之前连接失败过,打开本地C:\Users\cayhan\.ssh\known_hosts文件,删除所有和远程主机IP相关的行,下次连接时重新确认主机指纹即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:57:15