使用VS Code的Azure App Service管理扩展部署Node.js应用至Azure Web App时Git认证失败问题求助
根据你描述的情况——之前部署正常,突然出现fatal: Authentication failed for 'https://xxx.scm.azurewebsites.net:443/xxx.git/',且门户活动日志显示成功但部署中心无记录,我整理了几个针对性的排查和解决步骤:
重置VS Code的Azure认证会话
有时候Azure AD令牌过期会导致扩展认证失效,即使你能正常克隆仓库(克隆可能用了不同的凭证缓存)。在VS Code的左侧Azure面板中,找到你的Azure账号,点击账号名称旁的下拉菜单选择注销,然后重新登录Azure账号,之后再尝试部署。清除本地Git的旧凭证缓存
本地Git可能缓存了过期的部署凭证,导致部署时认证失败。打开终端执行以下命令清除对应SCM站点的凭证:git credential-manager erase https://xxx.scm.azurewebsites.net执行后再次发起部署,VS Code会提示你重新输入认证信息,此时使用Azure门户中App Service -> 部署中心 -> FTP/FTPS凭据里的部署用户名和密码(注意是部署用户,不是你的Azure AD账号)。
检查并重置Azure部署用户凭据
确认部署用户没有被禁用,密码是否过期:- 登录Azure门户,进入你的Web App资源
- 切换到部署中心,选择FTP/FTPS凭据标签页
- 点击重置密码生成新的部署密码,然后用新密码在VS Code中重新尝试部署
更新VS Code Azure App Service扩展并重启
旧版本的扩展可能存在认证相关的bug,打开VS Code的扩展面板,找到Azure App Service扩展,检查是否有更新,安装最新版本后重启VS Code再试。绕开扩展,手动用Git命令部署测试
直接用Git命令行部署,排查是否是扩展本身的问题:- 在本地项目仓库中添加Azure远程仓库(替换
<部署用户名>、<部署密码>和你的Web App信息):git remote add azure https://<部署用户名>:<部署密码>@xxx.scm.azurewebsites.net/xxx.git - 推送代码到Azure远程:
git push azure <你的部署分支名>
如果这个操作成功,说明问题出在VS Code扩展上,可以尝试卸载重装扩展;如果失败,说明是Azure端的认证或SCM服务问题。
- 在本地项目仓库中添加Azure远程仓库(替换
检查Kudu SCM站点状态
访问https://xxx.scm.azurewebsites.net,用部署用户凭据登录,确认能正常进入Kudu控制台。如果无法登录,说明SCM站点可能存在故障,你可以在Azure门户提交支持工单排查;如果能登录,尝试在Kudu的Debug console中手动拉取代码,验证Git连接是否正常。
内容的提问来源于stack exchange,提问作者Guy Golpur

