【问题标题】:"git push dokku" keeps asking for "dokku@..." password“git push dokku”不断要求输入“dokku@...”密码
【发布时间】:2021-11-29 19:12:14
【问题描述】:

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

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 连接而是请求用户密码(不存在的用户)

【问题讨论】:

  • git remote -v dokku dokku@116.123.123.123:node-sample-dokku (fetch) dokku dokku@116.123.123.123:node-sample-dokku (push) origin github.com/pedropaf/node-sample-dokku (fetch) origin github.com/pedropaf/node-sample-dokku(推)
  • 我的本地机器 = windows
  • 如果你运行ssh dokku@116.123.123.123 echo test会发生什么? (如果需要密码,请在 ssh 调用中添加-v 或多个-v,看看它为什么需要密码。)如果有效git 的唯一原因ssh 如果 Git 正在运行将其 ssh 密钥存储在不同位置的不同 ssh 程序,则调用将需要密码。这在 Windows 上很容易发生,因为 Git 带有一个 ssh,以防 Windows ssh 不足。
  • 如果这个测试的结果表明 Git 运行的是自己的 ssh 而不是系统的。如果系统一工作(它应该在现代 Windows 上),告诉 Git 运行系统一(根据需要配置 core.sshCommand)。
  • 谢谢@torek:我明白了:调试1:SSH2_MSG_SERVICE_ACCEPT 收到调试1:可以继续的身份验证:公钥,密码调试1:下一个身份验证方法:公钥调试1:尝试私钥:/c/Users/Vincent/ .ssh/id_rsa debug1:尝试私钥:/c/Users/Vincent/.ssh/id_dsa debug1:尝试私钥:/c/Users/Vincent/.ssh/id_ecdsa debug1:尝试私钥:/c/Users/Vincent /.ssh/id_ed25519 debug1:尝试私钥:/c/Users/Vincent/.ssh/id_xmss

标签: git ssh git-push dokku


【解决方案1】:

所以你正在关注来自Pedro Alonso的文章“Hosting NodeJs Apps on Your Own Heroku, Using Dokku

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

要让 git push 工作,您需要:

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

那是

# .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 将使用您的私钥。


discussioncomments,Vincent 找到了“SSH-Key authentication fails”并做了:

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

这足以使dokku SSH URL 正常工作。

【讨论】:

  • 没错,我正在关注该教程。我想我越来越近了。我创建了您提到的配置文件:1)没有移动 ssh 文件夹中的“vincent”文件,我收到以下错误:“没有这样的身份:%USERPROFILE%/.ssh/vincent3:没有这样的文件或目录”。 2)然后我将“vincent”文件放在文件夹中,我得到了dokku@116 ...密码提示。
  • 我以为它正在尝试建立 ssh 连接,但仍然有问题。我不知道如何调试它。
  • 我在第一条评论中的意思是“%USERPROFILE%/.ssh/vincent”
  • @VincentRoye 您是否更改了远程 URL 来源?在测试ssh -Tv dokku 时,您看到您使用的密钥了吗?
  • 我更改了远程来源: git remote set-url dokku dokku:node-sample
猜你喜欢
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
相关资源
最近更新 更多