我试图设置git与http://danielmiessler.com/study/git/#website来管理我的网站。

我已经到了指令的最后一步:git push website +master:refs/heads/master

我正在win7中使用git ming32命令行工作

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

这里的一个问题可能是程序正在寻找bill@* **.com。当我通过ssh连接到我的网站,我有一个不同的用户名(让我们说'abc')。也许这个应该是abc@***。com。如果是这样,我不知道如何改变这一点,或者如果我可以推下一个别名


当前回答

就我而言,我在办公室使用的是公司网络(没有互联网连接)。为了从github拉代码,我在gitbash中设置了https代理,然后使用https而不是ssh来拉代码,它工作得很好。然而,当涉及到推送代码时,https代理将不起作用。因此,切换到Internet网络(有Internet连接)或设置ssh代理可以解决这个问题。

其他回答

添加到“我有同样的问题和……”,我也在Windows中通过Ming32 (git bash) shell使用git。

在我的情况下,回购要求我输入密码,不使用SSH密钥,但它没有提示密码,只是说“致命:无法读取…”,尽管我可以SSH正常,使用plink和SSH,并设置了两个已知的主机密钥。

我尝试了这里和其他SOs的大部分建议。

最后我发现它在Powershell中工作得很好,但在git bash中不行,没有任何更改或更正。

如果您仍然得到相同的错误,请确保在git设置->ssh选项卡->ssh client to use设置为openSSH

我刚刚遇到了这个问题,并通过:git配置用户来解决它。电子邮件“youremail”。


更新: 根本原因可能是我的网络和代理不好。 我仍然不知道为什么会发生这种情况,但每次都有这个错误,这个命令工作!!

在Windows 11上使用这些命令解决了我的问题

1. 我打开Git Bash命令并启动ssh-agent。

eval "$(ssh-agent -s)" // this command only work in git bash.

2. 由ssh-key添加

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"  //it must be 4096
ssh-add id_rsa

3.检查是否正确添加。

ssh-add -l

4. 在GitHub上上传其公钥为(授权密钥)

cat id_rsa.pub | clip

5. 取消设置任何代理和GIT_SSH变量

unset GIT_SSH
git config --global --unset http.proxy
git config --global --unset https.proxy

6. 必须检查github.com应该解决。

ping github.com

7. 现在检查Github的连接性。

ssh -T git@github.com

输出

主机“github.com(20.207.73.82)”的真实性不可能是 建立。ED25519密钥指纹为 SHA256: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx该密钥是未知的 您确定要继续连接吗 (是的/不/(指纹))?警告:永久添加'github.com' (ED25519)到已知主机列表。嗨MHamzaRajput !你已经 成功验证,但GitHub不提供shell访问。

user@server:/etc/nginx$ cat .git/config 
...
[remote "origin"]
    url = git@gitlab.com:user/.git
    fetch = +refs/heads/*:refs/remotes/origin/*
...

使用ssh代替https。 在git中使用ssh密钥(添加ssh密钥)。 如果您是root用户,请使用ssh密钥。


$ sudo ssh-keygen
$ cat /root/.ssh/id_rsa.pub 

$ git init
$ git add file
$ git commit -m "add first file"
$ git remote add origin git@gitlab.com:user/example.git 
$ git push -u origin master