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

执行git push dokku命令时持续要求输入dokku@服务器密码的问题求助

Dokku 部署时git push要求输入dokku用户密码的解决方案

SSH连接触发密码输入说明公钥验证流程失败,可按以下步骤逐一排查解决:

  • 步骤1:验证本地私钥加载状态
    本地执行ssh-add -l,检查输出中是否存在vincent私钥对应的指纹。如果无匹配项,先确保ssh-agent正常运行:
    • macOS/Linux执行:eval "$(ssh-agent -s)"
    • Windows执行:在管理员权限PowerShell中运行Start-Service ssh-agent
      之后重新加载私钥:ssh-add /path/to/vincent(替换为你本地vincent私钥的实际路径)
  • 步骤2:核对服务器端公钥内容
    本地执行cat vincent.pub输出公钥内容,远程服务器执行dokku ssh-keys:list,确认两边公钥字符串完全一致,无多余换行、空格或缺失字符。
  • 步骤3:单独测试SSH连接
    跳过git流程直接测试SSH连通性,本地执行:
    ssh dokku@116.123.123.123 version
    如果仍要求输入密码,说明SSH层面验证失败,继续后续排查。如果成功返回Dokku版本号,说明SSH配置正常,可尝试删除本地git remote重新添加:
    git remote remove dokku
    git remote add dokku dokku@116.123.123.123:node-sample
    
  • 步骤4:修复服务器端dokku用户SSH目录权限
    SSH会因为权限过高拒绝读取authorized_keys文件,远程以root身份执行以下命令修正权限:
    chown -R dokku:dokku /home/dokku/.ssh
    chmod 700 /home/dokku/.ssh
    chmod 600 /home/dokku/.ssh/authorized_keys
    
  • 步骤5:添加本地SSH规则强制使用指定密钥
    编辑本地SSH配置文件(macOS/Linux路径:~/.ssh/config,Windows路径:C:\Users\你的用户名\.ssh\config),添加以下配置:
    Host 116.123.123.123
      User dokku
      IdentityFile 替换为本地vincent私钥的绝对路径
      IdentitiesOnly yes
    
    保存后重新测试SSH连接即可。
  • 步骤6:排查服务器SSH日志定位问题
    如果以上步骤都无效,远程root用户执行以下命令查看实时SSH日志:
    • Ubuntu/Debian系:tail -f /var/log/auth.log
    • CentOS/RHEL系:tail -f /var/log/secure
      本地发起SSH连接时查看日志输出的具体错误,针对性处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:06:04