"git push dokku" 一直要求输入 "dokku@..." 密码

"git push dokku" keeps asking for "dokku@..." password

在我的远程服务器上,我所做的是:

wget https://raw.githubusercontent.com/dokku/dokku/v0.26.6/bootstrap.sh;
sudo DOKKU_TAG=v0.26.6 bash bootstrap.sh

dokku apps:create node-sample

然后在我的本地机器上:

git clone https://github.com/pedropaf/node-sample-dokku
cd .\node-sample-dokku\

git remote add dokku dokku@116.123.123.123:node-sample

ssh-keygen -f vincent

cat vincent.pub | ssh root@116.123.123.123 dokku ssh-keys:add git-deploy

(当我在我的远程服务器中 运行 ssh-keys:list 时,我可以看到 ssh 密钥)

仍在本地:

ssh-add vincent

然后当我运行:

git push dokku main

我收到:

dokku@116.123.123.123's password:

我不明白为什么它不建立 ssh 连接而是请求用户密码(不存在的用户)

所以您正在关注文章“Hosting NodeJs Apps on Your Own Heroku, Using Dokku" from Pedro Alonso

问题是:您正在为 SSH 密钥使用非默认命名约定(对您来说 vincent.pub,文章中 dokku_rsa.pub

要git推动工作,您需要:

  • %USERPROFILE%/.ssh/config 文件设置为引用您的私钥
  • 远程 URL 使用 .ssh/config 主机条目

也就是

# .ssh/config
Host dokku
  Hostname 116.123.123.123
  User dokku
  IdentityFile ~/.ssh/vincent

并且:

cd /C/path/to/local/clone
git remote set-url dokku dokku:node-sample

然后 git push 将使用您的私钥。


来自 discussion and the , Vincent has found "SSH-Key authentication fails" 并做了:

sudo chown dokku:dokku /home/dokku/ -R
sudo chmod o-rwx /home/dokku/ -R

这足以让 dokku SSH URL 工作。