无法读取'https://github.com'的用户名:没有这样的设备或地址。

16

我正在使用git命令来构建一个docker镜像,命令如下:sudo docker build github.com/roseperrone/myproject,但是出现了以下错误:

could not read Username for 'https://github.com': No such device or address

我应该如何提供我的git凭据?

我正在AWS ec2实例中运行。


这个回答解决了你的问题吗?致命错误:无法读取'https://github.com'的用户名:没有这样的设备或地址 - محمد جعفر نعمة
6个回答

4
为了理解这个错误,需要回想一下从Github检出代码的两种方式:使用用户名/密码和通过SSH密钥进行身份验证。
在Github UI中,“克隆或下载”按钮提供了两个选项:用SSH克隆使用HTTPS。(如果您已将SSH密钥添加到Github帐户中,则可能只会得到这两个选项。)使用https-URL检出代码要求输入用户名和密码进行身份验证。 SSH选项创建git@github-URL,检出不会要求输入用户名和密码。
我建议不要在EC2机器或Docker配置中保存您的Github帐户密码。我也不建议将个人id_rsa文件复制到EC2实例上。相反,您可以在Github上创建专用SSH密钥 以此用于此目的。为其命名一个适当的标签并决定是否允许推送代码或只允许拉取。这样,如果密钥丢失或您停止使用此设置,您可以轻松地撤销访问权。
有关如何在Docker设置中使用生成的SSH密钥的更多信息,请参见此问题:在Docker容器内部使用SSH密钥 希望能对您有所帮助 :)

2

我曾有过同样的问题,最近才加入Github,但这个bug困扰了我很久。 我已经成功修复了它。

首先生成SSH密钥并进行身份验证。

如果不起作用,请删除之前的任何远程地址,现在进入你的存储库并复制ssh克隆URL。

现在输入以下命令:

git remote add origin git@github.com:username/your-repo.git

用户名您的存储库替换为您自己的用户名和存储库。
现在尝试推送更改,运行以下命令。

git push origin master

希望对你有帮助。


1

看代码,似乎没有提供凭据的选项,因此我复制了我的 id_rsa 密钥,运行了 git clone,进入目录并运行了 docker build .


-2

当 push 尝试强制执行它时:

$ git push -u -f origin <name_of_branch>

我知道这有点奇怪,但对我来说很有效...


-4

-5
如果有其他人遇到这个问题需要帮助,在你的Dockerfile中,通过以下命令使用你的凭据克隆你的repo:
git clone https://{username}:{password}@github.com/{username}/project.git

请确保您的密码已经进行了编码。


3
虽然这可能有效,但您绝不能将密码粘贴到随意的网站上。 - koks der drache

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接