我试图设置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。如果是这样,我不知道如何改变这一点,或者如果我可以推下一个别名


当前回答

对我来说,问题和答案就写在我面前。当天早些时候,我编辑了/etc/ssh/ssh_config文件并添加了一些密钥。这个错误说:

/etc/ssh/ssh_config: line 52: Bad configuration option: allowusers
/etc/ssh/ssh_config: terminating, 1 bad configuration options
fatal: Could not read from remote repository.

我删除了allowusers键和它的值,一切都按照预期工作。

其他回答

有类似的问题。 我已经通过这条指令(ssh-keygen)生成ssh密钥到我的帐户,或者如果你已经有一个添加它,不生成新的一个。 然后我通过命令shell更改了我的全局凭据,如果你已经克隆了repo,它们也可以在项目根目录中本地更改项目(删除全局标志),但这不是我的情况。 git配置——global user.name“你的姓” Git配置——全局用户。电子邮件“youremail.com”

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

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

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

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

在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@example.com repo]$ git fetch --all --prune
Fetching origin
exec request failed on channel 0
fatal: Could not read from remote repository.

当Git服务器文件系统已满时。要验证这一点,请运行:

ssh -v ssh://git@yourhost/path/repo.git

如果服务器像这样回复:

...
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/...
SHA256:...
debug1: Server accepts key: /home/...
SHA256:...
Authenticated to linux-git.....com ([xxx.xxx.xx.xx]:xx) using "publickey".
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: filesystem full
...
debug1: Remote: PTY allocation disabled.
PTY allocation request failed on channel 0
shell request failed on channel 0

服务器的磁盘空间会被占满。

我知道这个答案不会得到很多人的支持;为了完整起见,添加它。

附注:也可以使用类似

GIT_SSH_COMMAND="ssh -v" git pull

诊断问题。

您可以指定SSH应该发送到远程系统的用户名作为远程URL的一部分。在远程主机名之前输入用户名,后面加@。

git remote set-url website abc@***.com:path/to/repo