执行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私钥的实际路径)
- macOS/Linux执行:
- 步骤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),添加以下配置:
保存后重新测试SSH连接即可。Host 116.123.123.123 User dokku IdentityFile 替换为本地vincent私钥的绝对路径 IdentitiesOnly yes - 步骤6:排查服务器SSH日志定位问题
如果以上步骤都无效,远程root用户执行以下命令查看实时SSH日志:- Ubuntu/Debian系:
tail -f /var/log/auth.log - CentOS/RHEL系:
tail -f /var/log/secure
本地发起SSH连接时查看日志输出的具体错误,针对性处理即可。
- Ubuntu/Debian系:
内容的提问来源于stack exchange,提问作者Vincent Roye
相关产品推荐
相关产品推荐

