我正在尝试使用 http://danielmiessler.com/study/git/#website 设置 git 来管理我的网站。
我已经到了说明的最后一步: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。如果是这样,我不知道如何更改它,或者我是否可以使用别名推送
.git/config
文件并查看一切正常。它对我来说有错误的 set-url 和 origin 值。
您的 ssh 密钥很可能已从 ssh 代理中删除
ssh-add ~/.ssh/id_rsa
其中 id_rsa 是与 git repo 关联的 ssh 密钥
更新
您可能会收到 Could not open a connection to your authentication agent.
错误来解决您需要先启动代理的方法:
eval `ssh-agent -s`
前段时间我也面临同样的问题...
我的 .git/config 有
url = git@github.com:manishnakar/polymer-demo.git
我把它换成了
url = https://github.com/manishnakar/polymer-demo.git
现在可以使用了:)
ssh
密钥,那么您可能会遇到此问题。所示的修复方法是改用 https
,或者让 repo 所有者设置 ssh
您可以指定 SSH 应发送到远程系统的用户名作为远程 URL 的一部分。将用户名,后跟 @
,放在远程主机名之前。
git remote set-url website abc@***.com:path/to/repo
.git/config
git
。示例:git@github.com:mayoff/uiimage-from-animated-gif.git
Github 通过查看您发送的 SSH 密钥来确定您的身份。
确保您在 .git/config
中有正确的网址
url = git@github.com:username/repo.git
如果这是您的第一次推送,您需要设置正确的上游
$ git push -u origin master
您可以检查以下用户使用了哪个密钥:
$ ssh -vvv git@github.com
回复应包含以下内容:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.
也可以在 ~/.ssh/config
中为 ssh 定义规则,例如基于别名:
Host github
HostName github.com
User git
IdentityFile "~/.ssh/id_rsa"
Host git
HostName github.com
User git
IdentityFile "~/.ssh/some_other_id"
您可以为每个别名设置连接到不同的端口、使用不同的用户名等。
url
设置为 https://github.com/user/repo.git
(没有 git@github.com
),因此它拒绝使用我的 SSH 密钥。也许是因为我最初使用 GIthub for Windows 克隆了它(?)
url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.git
更改为 url = ssh://git@github.com/RaphaelBossek/dev-atlassian-jira-proman.git
并且它再次起作用
-vvv
提示对我很有帮助。现在我看到它说“连接由 XXX.XXX.XXX.X 端口 22 关闭”。
尝试使用 unset GIT_SSH
删除 GIT_SSH 环境变量。这是我的问题的原因。
这通常是由于 SSH 密钥与远程不匹配造成的。
解决方案:
转到终端并键入以下命令(Mac、Linux)替换为您的电子邮件 ID。 ssh-keygen -t rsa -C "you@email.com" 使用以下命令从 ssh 开始复制生成的密钥。 cat ~/.ssh/id_rsa.pub 将其粘贴到您的遥控器的 github、bitbucket 或 gitlab 中。保存。
通过在终端上执行以下命令确保 ssh-agent 正在运行:
eval $(ssh-agent -s)
.zshrc
文件中的一个条目?
我有一个错误的 Bitbucket ssh 私钥以及 ssh 代理中的正确私钥。
首先删除所有密钥
ssh-add -D
然后添加了正确的键。
ssh-add ~/.ssh/id_rsa
我有同样的问题。
此错误表示您尚未指定代码将推送到的远程 URL 位置。
您可以通过 2(主要)方式设置远程 URL:
通过在 Git Bash 上执行命令指定远程 URL。导航到您的项目目录 打开 Git Bash 执行命令:git remote set-url origin
有关更多详细信息,请访问此 link。
另一种解决方法:
有时这发生在我身上是因为网络问题。我不完全理解根本问题,但是切换到不同的子网或使用 VPN 可以解决它
在做了一些研究之后,我终于找到了解决方案,你已经为 plink.exe 路径声明了一个环境变量。因此,如果您删除该路径,请重新打开 git bash 并尝试通过 SSH 进行克隆,它将起作用。
参考这个链接
http://sourceforge.net/p/forge/site-support/2959/#204c
我有同样的错误。解决方案如下:我在 .git/config
中更正了我的网址。刚刚从 HTTPS 克隆 URL 复制了它。那将是这样的:
url = https://github.com/*your*git*name*/*your*git*app*.git
有效。
如果在“git push origin master”命令之后你看到错误“无法从远程存储库读取”,那么试试这个
1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master
在你的 .git/config 文件中
[remote "YOUR_APP_NAME"]
url = git@heroku.com:YOUR_APP_NAME.git
fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*
而且很简单
git push YOUR_APP_NAME master:master
如果您使用 Gitlab,则可能需要登录并接受 Gitlab 新条款,然后再尝试拉取或推送。
2020 年 10 月更新
在大多数情况下,当您有多个用户从同一个客户端系统访问同一个 git 服务器时,此时 git 服务器与两个用户都允许的用户的访问密钥混淆,但是当您触发命令时,它使用了默认用户。
ssh -T git@gitlab.com
查看您尝试与该用户一起推送的用户
简单的解决方案从 git 服务器中删除未使用的用户公钥。
然后尝试 git fetch 或 pull,push 它将对我有用
就我而言,我使用带有密码的 ssh 密钥向 github 进行身份验证。我没有在 Windows 中正确设置选美(仅在 cygwin 中)。缺少的步骤是将 git_ssh 环境变量指向 plink.exe。此外,您需要将 github.com 放入 plink known_hosts。
plink github.com
y
<then ctrl-c>
希望这可以帮助!
我当然希望 intellij 能给我一个更有用的错误,或者更好地要求我输入 ssh 密钥密码。
我有一个完美的工作 git,但当我尝试推送到 master 时突然出现了这个错误。我发现,这是因为存储库主机有问题。
如果您使用 GitHub 或 Bitbucket,您可以在以下位置轻松检查状态
https://status.github.com/messages 或 https://status.bitbucket.org/
https://i.stack.imgur.com/85OWs.png
您需要为 Git 使用 HTTPS:
在终端中输入:
$ git remote set-url origin abc@***.com:path/to/httpURLRepo
然后提交:
$ git add .
$ git commit -m "This is the commit message"
我已经尝试了所有方法,包括生成新密钥、添加到 GitHub 帐户、编辑 .ssh/config 和 .git/config。但它仍然给了我同样的错误。然后我尝试了以下命令,它确实成功了。
ssh-agent bash -c 'ssh-add ~/.ssh/id_rsa; git clone git@github.com:username/repo.git'
ssh -T git@github.com
?这对我有用。
我刚才遇到了这个问题,并通过: git config user.email "youremail"
解决了它。
更新:根本原因可能是我糟糕的网络和糟糕的代理。我仍然不知道为什么会这样,但是每次都有这个错误,这个命令有效!!!
就我而言,bitbucket 的 web ssh 密钥设置 UI 令人困惑。
存储库设置 -> 访问密钥 -> 添加密钥:错误
个人设置 -> SSH 密钥 -> 添加密钥:好的
公钥注册屏幕是互斥的。您必须仅在一处注册公钥。将它们统一在一个屏幕上似乎很好。
就我而言,我在办公室使用公司网络(没有互联网连接)。为了从 github 拉代码,我在 gitbash 中设置了 https 代理,然后使用 https 而不是 ssh 来拉代码,它工作正常。但是,在推送代码时,https 代理将不起作用。所以要么切换到 Internet 网络(有 Internet 连接),要么设置 ssh 代理可以解决问题。
实际上,我尝试了很多方法使其在 Win7 上运行,因为将 SSH exectun 从本机更改为 build-it 和向后以及相同的错误。碰巧,我在“.git/config”文件中将其更改为 HTTPS,如下所示:
[remote "origin"]
url = https://github.com/user_name/repository_name.git
fetch = +refs/heads/*:refs/remotes/origin/*
它终于奏效了。所以也许它也对你有用。
我遇到了同样的问题,过了一会儿我看到我在 root 用户下(使用 sudo -s)。愿这对某人有所帮助。
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
我通过重新启动终端(打开一个新窗口/标签)解决了这个问题。
因此,如果您真的不想/不需要了解潜在问题,那么在深入挖掘之前,值得一试测试方法:)
我在 Windows 10 上使用 gitbash 时遇到了这个问题。我尝试了几件事来解决这个问题,主要是这些:
重新创建了我的 ssh 密钥并更新为 bitbucket。没有帮助 使用它打开调试,发现我收到“通道 0 上的 shell 请求失败”,如此处所问重新启动我的 Windows PC
以上都没有帮助。我最终重新安装了 Git for windows 与我所做的其他事情相比,这只花了几分钟,它解决了问题!
对我有用的非常简单的解决方案,见下文: -
问题
$ git clone git@github.com:xxxxx/xxxx.git my-awesome-proj
Cloning into 'my-awesome-proj'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
这也应该超时
$ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out
这可能有效
$ ssh -T -p 443 git@ssh.github.com
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
覆盖 SSH 设置
$ vim ~/.ssh/config
# You can also manually open the file and copy/paste the section below
# Add section below to it
Host github.com
Hostname ssh.github.com
Port 443
然后再试一次
$ ssh -T git@github.com
Hi xxxxx! You've successfully authenticated, but GitHub does not
provide shell access.
立即尝试克隆(应该可以)
$ git clone git@github.com:xxxxxx/xxxxx.git my-awesome-proj
Cloning into 'my-awesome-proj'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 15 (delta 0), reused 15 (delta 0), pack-reused 0
Receiving objects: 100% (15/15), 22.90 KiB | 4.58 MiB/s, done.
参考:这里=> Use HTTPS with Port 443
就我而言,它是 postBuffer ..
git config --global http.postBuffer 524288000
供参考阅读:https://gist.github.com/marcusoftnet/1177936
ssh-add ~/.ssh/theKeyInQuestion
让我重新启动并使用这个 repo 运行,不知道密钥被删除,或者“删除”甚至意味着什么,但至少我能够再次获得身份验证。即使在处理了数月的身份验证问题之后,SSH 对我来说仍然是个谜。 ssh 代理问题是另外一件需要注意的事情!ssh-add -k ~/.ssh/id_rsa
Could not open a connection to your authentication agent.
。eval `ssh-agent -s`
启动 ssh-agent