我正在尝试使用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。如果是这样,我不知道如何改变这个或者我是否可以推动别名
答案 0 :(得分:107)
您可以指定SSH应作为远程URL的一部分发送到远程系统的用户名。在远程主机名之前输入用户名,后跟@
。
git remote set-url website abc@***.com:path/to/repo
答案 1 :(得分:105)
确保.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"
您可以设置连接到不同的端口,为每个别名使用不同的用户名等。
答案 2 :(得分:100)
您的ssh密钥很可能已从ssh代理中删除
ssh-add ~/.ssh/id_rsa
其中id_rsa是与git repo相关联的ssh密钥
答案 3 :(得分:88)
我刚才面临同样的问题......
我的.git / config
url = git@github.com:manishnakar/polymer-demo.git
我用
替换了它url = https://github.com/manishnakar/polymer-demo.git
现在可以使用了:)
答案 4 :(得分:22)
尝试使用unset GIT_SSH
删除GIT_SSH环境变量。这是我的问题的原因。
答案 5 :(得分:11)
这通常是由于SSH密钥与远程不匹配引起的。
<强>解决方案:强>
转到终端并键入以下命令(Mac,Linux)替换为您的电子邮件ID。
ssh-keygen -t rsa -C&#34; you@email.com"
使用以下命令从单词ssh开始复制生成的密钥。
cat~ / .ssh / id_rsa.pub
答案 6 :(得分:9)
我为Bitbucket的ssh私钥以及在ssh代理中的正确私钥错误。
首先删除所有键
ssh-add -D
然后只添加了正确的键。
ssh-add ~/.ssh/id_rsa
答案 7 :(得分:7)
在做了一些研究之后我终于得到了解决方案,你已经为plink.exe路径声明了一个环境变量。因此,如果您删除该路径,请重新打开git bash并尝试通过SSH克隆它将起作用。
请参阅此链接
答案 8 :(得分:6)
我遇到了同样的问题。
此错误表示您尚未指定代码将推送的远程URL位置。
您可以通过2种(主要)方式设置远程URL:
通过在Git Bash上执行命令指定远程URL。
导航到您的项目目录
打开Git Bash
执行命令:
git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
在配置文件中直接提及远程URL
导航到您的项目目录
转到 .git 文件夹
在文本编辑器中打开 config 文件
复制并粘贴到以下行
[remote "origin"]
url = https://abc.xyz/USERNAME/REPOSITORY.git
fetch = +refs/heads/*:refs/remotes/origin/*
有关详细信息,请访问此link。
答案 9 :(得分:5)
我有同样的错误。
解决方案如下:
我在.git/config
修正了我的网址。
刚刚从HTTPS克隆URL复制了它。那将是这样的:
url = https://github.com/*your*git*name*/*your*git*app*.git
有效。
答案 10 :(得分:5)
答案 11 :(得分:4)
如果你使用Gitlab而不是你可能需要登录并接受Gitlab新术语,那么在尝试拉动或推动之前。
答案 12 :(得分:2)
如果&#34; git push origin master&#34;命令你看到错误&#34;无法从远程存储库中读取&#34;然后尝试一下
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
答案 13 :(得分:2)
在我的情况下,我使用带密码的ssh密钥来验证github。我没有在Windows中正确设置选美(仅限cygwin)。缺少的步骤是将git_ssh环境变量指向plink.exe。此外,您需要将github.com放入plink known_hosts。
plink github.com
y
<then ctrl-c>
希望这有帮助!
我确定希望intellij会给我一个更有用的错误,或者更好的是让我输入ssh密钥密码。
答案 14 :(得分:2)
实际上我尝试了很多东西让它在Win7上运行,因为改变了SSH exectun fron native to build-it和backwards以及相同的错误。 偶然的机会,我在&#34; .git / config&#34;中将其更改为HTTPS文件为:
[remote "origin"]
url = https://github.com/user_name/repository_name.git
fetch = +refs/heads/*:refs/remotes/origin/*
它终于奏效了。所以也许它也适合你。
答案 15 :(得分:2)
就我而言,我在办公室使用公司网络(没有互联网连接)。为了从github中提取代码,我在gitbash中设置了https代理,然后使用https代替ssh来提取代码,它工作正常。但是,当推送代码时,https代理将无法正常工作。因此,无论是切换到Internet网络(使用互联网连接)还是设置ssh代理都可以解决问题。
答案 16 :(得分:2)
另一种解决方法:
由于网络问题,有时会发生这种情况。我完全不了解根本问题,但切换到不同的子网或使用VPN解决了它
答案 17 :(得分:2)
在你的.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
答案 18 :(得分:1)
遇到这个问题是因为我在中国的防火墙很重要...
kex_exchange_identification:连接被远程主机关闭致命: 无法从远程存储库读取。
请确保您具有正确的访问权限和存储库 存在。
答案 19 :(得分:1)
就我而言,问题及其解决方案就写在我的眼前。那天早些时候,我编辑了/ etc / ssh / ssh_config文件并添加了一些键。错误说:
rollup --config rollup.config.dev.js
rollup --config rollup.config.prod.js
我删除了/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.
键,它的值和所有功能都按预期工作。
答案 20 :(得分:1)
您需要对Git使用HTTPS:
将此输入终端:
$ git remote set-url origin abc@***.com:path/to/httpURLRepo
然后提交:
$ git add .
$ git commit -m "This is the commit message"
答案 21 :(得分:1)
有时您需要使用完整的URL和ssh://
方案:
ssh://git@yourhost:port/path/repo.git
或具有指定端口:
ssh://git@yourhost:port/path/repo.git
对我来说,它解决了这个问题。
答案 22 :(得分:1)
如果您已设置 recevepack 或 uppackpack 就我而言,我在错误设置它们后得到了错误
receivepack = powershell git receive-pack
在我的情况下,在.git/config
您可以按照下面的答案将其删除
https://stackoverflow.com/a/26207308/7668448
或直接修改.git/config
答案 23 :(得分:1)
不是OP的问题,但是如果您在 GitHub组织/团队中工作,则可能没有对该存储库的写权限。不幸的是,git没有显示更多特定的权限错误。就我而言,我在一个私有存储库上工作,并获得了“分类”或“读取”访问权限。
有关每个权限级别的存储库访问的更多信息,请参见GitHub documentation。
在GitHub上进行更改的链接是https://github.com/orgs/ORGANISATION_NAME/teams/TEAM_NAME/repositories
,您可以在其中更改授予团队的权限。
答案 24 :(得分:1)
如果您有多个用户从同一客户端系统访问同一git服务器,则可能使用了错误的访问密钥来尝试访问该服务器。
ssh -T git@gitlab.com
此命令将显示您正在尝试与哪个用户进行推送。
简单的解决方案是从git服务器中删除未使用的用户公共密钥。
然后尝试git获取,拉动或推入。
答案 25 :(得分:1)
我有一个非常好的工作git,当我试图推向主人时突然出现了这个错误。正如我发现的那样,这是因为存储库主机存在问题。
如果您使用GitHub或Bitbucket,您可以轻松查看状态
https://status.github.com/messages或https://status.bitbucket.org/
答案 26 :(得分:1)
我遇到了同样的问题,并通过更新到最新的git版本来解决了
答案 27 :(得分:1)
根据我的经验,发生此问题的原因之一是因为您有不稳定的互联网连接。
答案 28 :(得分:1)
更换电脑后我发现了这个错误。我正在使用SourceTree和Bitbucket。
所以我必须在新计算机上添加SourceTree生成的SSH密钥,在Bitbucket设置&gt;安全&gt; SSH密钥,同时连接到网络上的Bitbucket帐户。
答案 29 :(得分:1)
我有同样的问题,过了一会儿,我看到我在root用户(使用sudo -s)下。愿这对某人有所帮助。
答案 30 :(得分:0)
添加到“我有同样的问题和......”,我也在Windows中通过Ming32(git bash)shell使用git。
在我的情况下,repo要求我键入密码,而不是使用SSH密钥,但是不提示输入密码,只是说“致命:无法读取......”,尽管我可以正常使用plink和ssh进行SSH,并设置了两个已知主机密钥。
我在这里和其他SO中尝试了大部分建议。
我最终发现在Powershell中运行良好,但没有在git bash中运行,没有任何更改或更正。
答案 31 :(得分:0)
我只是想分享一下我找到了一个简单的解决方法:
拒绝访问。 致命:无法从远程存储库读取。 请确保您拥有正确的访问权限 存储库存在。
只需从gitlab注销然后再次登录。然后应该解决问题。
答案 32 :(得分:0)
使用putty / pageant时,请确保您没有忘记将正确的SSH密钥添加到分页,否则会出现此错误。 DUH
答案 33 :(得分:0)
在我的情况下,它是postBuffer ..
git config --global http.postBuffer 524288000
答案 34 :(得分:0)
转到MINGW32终端把这个命令:git branch --set-upstream-to = origin /(分支名称)
答案 35 :(得分:0)
答案 36 :(得分:0)
我有同样的错误,这让我得到了这个对我没有帮助的答案。 我第一次尝试使用以下命令创建一个新的“裸”存储库来跟踪NTFS位置:
cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status
当我尝试添加原点以设置(新)跟踪的上游分支时,我的问题是在NTFS位置使用反斜杠而不是正斜杠。
我必须使用以下方法删除原点:
git remote rm origin
然后使用预期的正斜杠
再次添加原点git remote add origin //myserver.mycompany.local/myrepository.git
希望这有助于将来。
答案 37 :(得分:0)
就我而言,我尝试使用sudo
进行克隆。根据Github的文档,您不应将sudo与git clone一起使用:
https://help.github.com/en/github/authenticating-to-github/error-permission-denied-publickey#should-the-sudo-command-be-used-with-git
我所做的是授予当前用户编辑目录(Debian 9)的权限:
chown myuser:root .
然后克隆而没有sudo
,它起作用了。
答案 38 :(得分:0)
我现在遇到问题了,可以通过git config user.email "youremail"
来解决。
更新: 我发现了根本原因,可能是我的网络差和代理服务器差。
答案 39 :(得分:0)
可能是网络问题。
尝试执行ssh -vvvT git@gitlab.com
。如果服务器意外挂起,则可能是网络连接不稳定。
将以下内容放入〜/ .ssh / config
IPQoS lowdelay throughput
答案 40 :(得分:0)
我通过使用sudo su切换到root来解决了这个问题。
答案 41 :(得分:0)
我通过输入多次错误密码遇到此问题。
所以我必须将MaxAuthTries更改为更大的数字:
打开服务器端的sshd_config
:
vim /etc/ssh/sshd_config
更改MaxAuthTries编号:
MaxAuthTries 100 # there I change to 100, you can change to a bigger than your current tries number
答案 42 :(得分:0)
我在Windows 10上使用gitbash时遇到了这个问题。我尝试了几种方法来解决此问题,其中主要的是:
以上方法均无济于事。我最终重新安装了Git for windows,与我做的其他事情相比,只花了几分钟,就解决了问题!
答案 43 :(得分:0)
我间歇性地遇到此问题,大多数情况下它不会给出错误消息。对我来说,解决方案是在LDAP服务器的IP地址更改后正确配置LDAP。
LDAP的/etc/gitlab/gitlab.rb
配置指向一个不存在的IP地址,因此将主机更改为指向LDAP服务器的正确主机名可以解决此问题。
要诊断问题,请使用gitlab-ctl tail
命令来帮助您查找堆栈跟踪。对我来说,我找到了这个堆栈跟踪:
==> /var/log/gitlab/gitlab-rails/production.log <==
Net::LDAP::Error (No route to host - connect(2) for 10.10.10.12:389):
/opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/net-ldap-0.16.0/lib/net/ldap/connection.rb:72:in `open_connection'
...
对/etc/gitlab/gitlab.rb
中的主机值进行更改
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main:
label: 'My LDAP'
# this was an IP address
# host: '10.10.10.12'
host: 'internal-ldap-server' # this is the fix
port: 389
更改上面的配置文件后,请确保重新配置gitlab
gitlab-ctl reconfigure
答案 44 :(得分:0)
我尝试了evreything,包括生成新密钥,添加到Github帐户,编辑 .ssh / config 和 .git / config 。但是仍然给了我同样的错误。 然后我尝试了以下命令,它确实可以正常工作。
ssh-agent bash -c ssh-add ~/.ssh/id_rsa; git clone git@github.com:username/repo.git'
答案 45 :(得分:0)
我通过重启终端(打开新窗口/标签)解决了这个问题。
因此,如果您真的不想/不需要理解潜在的问题,那么在深入研究之前,可以尝试使用测试方法:)
答案 46 :(得分:0)
我在尝试将代码从工作推送到个人git时遇到此错误-默认指向工作git。 因此,我按照以下步骤操作:
由于某种原因,没有其他方法对我有用。希望这对使用2个或更多git帐户的人有所帮助。
答案 47 :(得分:0)
我建议检查您使用git remote -v
配置的所有遥控器如果您将已将repo配置为已删除的遥控器,则会收到以下错误消息:fatal: Could not read from remote repository. Please make sure you have the correct access rightsand the repository exists.
即使尝试推或拉到另一个(现有的)遥控器。因此,如果您有一个已删除的遥控器,则可以使用git remote remove name-of-remote-to-remove
删除,之后您可以毫无问题地推送或拉动现有的遥控器。
答案 48 :(得分:0)
user@server:/etc/nginx$ cat .git/config
...
[remote "origin"]
url = git@gitlab.com:user/.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
$ 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
答案 49 :(得分:0)
我遇到了同样的问题;只需在命令窗口中运行它:
git remote add origin https://your/repository/url
答案 50 :(得分:-1)
我只是想补充一下这个问题。我让Git设置使用PLink和Pageant进行身份验证,我也收到了错误FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
。我有Pageant打开但错误仍然出现。问题?我没有在Pageant中加载私钥(要添加密钥,请关注these instructions)。就这么简单。
答案 51 :(得分:-1)
对于那些在私人远程仓库上遇到此问题的人。确保您已接受远程服务器上的Xcode协议:我们花了几周时间才找到此修复程序
从命令行使用此命令:sudo xcodebuild -license
答案 52 :(得分:-6)