注意:我不是一个新手,我已经做了很多次,但由于某种原因,今天它决定不工作.
Permission denied (publickey).尝试通过SSH连接到github或尝试克隆存储库时,我不断收到错误消息,即使在重新生成ssh密钥并将其添加到我的帐户中的"SSH密钥"之后也是如此.
这是我今天尝试做了十次没有成功的事情:
现在,当我尝试这样做ssh github.com时,它将无法工作......世界上有什么?我现在太累了还是我错过了什么?
这是来自的输出 ssh -vvv github.com
OpenSSH_5.9p1, OpenSSL 1.0.0f 4 Jan 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to github.com [207.97.227.239] port 22.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/trusktr/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /home/trusktr/.ssh/id_rsa type 1
debug1: identity file /home/trusktr/.ssh/id_rsa-cert type -1
debug1: identity file …Run Code Online (Sandbox Code Playgroud) 我刚刚在我的CentOS Linux服务器上安装了GIT并进行了配置.当我使用git init它创建一个新的存储库工作正常并提供该命令的输出.
但每当我尝试将远程存储库克隆到我的本地计算机文件夹时,它会给出以下消息:
fatal: '/public_html/repositories/git-test/.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过这个问题,原因可能是什么?
我知道这个帖子说rebase是针对teamMates的小变化,而是针对大变化进行合并.
我在以下目录结构中保留了三个队友的三个Gits,我们都有相同的初始代码:
project
| - I
| - myTeamMate1
| - myTeamMate2
Run Code Online (Sandbox Code Playgroud)
分支机构不在同一个Git中.这意味着我不能使用rebase和merge.我使用vimdiff在teamMates之间同步更改.但是,这很费时间.
我没有成功尝试进行以下目录结构,其中所有分支都在一个Git下:
project
| - I - myTeamMate1 - myTeamMate2
Run Code Online (Sandbox Code Playgroud)
但是,我为我和我的队友运行了clone命令:
git clone <url>
Run Code Online (Sandbox Code Playgroud)
我为队友运行第二个克隆后收到错误消息
fatal: destination path 'dotFiles' already exists and is not an empty directory.
Run Code Online (Sandbox Code Playgroud)
我应该与3人团队一起使用哪种目录结构,以便我可以使用rebase和merge命令?
我在一个主分支'master',我有1个提交我想创建一个名为'new_remote'的新远程分支并在那里推送我的提交?
$ git branch
* master
$ git remote
old_remote
$ git status
# On branch master
# Your branch is ahead of 'old_remote/master' by 1 commit.
Run Code Online (Sandbox Code Playgroud)
我想将我的提交推送到名为'new remote'的远程新分支上谢谢.
关于如何使用GitBash在Windows下使用git有很多很好的说明.
我注意到,当安装了git时,它提供了"设置从windows提示符使用git"的选项,它将git放在windows路径上.
有没有办法设置它,以便ssh身份验证工作?
目前,当我尝试执行访问远程控制器的git命令时,我得到"权限被拒绝(publickey)".
(编辑)我已将%HOME%设置为指向我的Windows主目录,并且其中有一个.ssh文件夹,其中的id文件可在gitbash shell下运行.
我很欣赏答案可能是"不,这就是为什么GitBash存在".但是 - 肯定知道会很好.
如果答案是"不",那有点让你想知道为什么你会把git放在你的Windows路径上?
我无法在github以及heroku中使用git push,我已经尝试了这个问题所建议的各种方法.请帮助解决这个问题..我试图推动时看到以下报告.
D:\My\weblog>git push heroku master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
D:\My\weblog>ssh -v git@heroku.com
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.16.232.130] port 22.
debug1: Connection established.
debug1: identity file /.ssh/identity type -1
debug1: identity file /.ssh/id_rsa type -1
debug1: identity file /.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debia
n-5pgsql1
debug1: match: OpenSSH_5.1p1 Debian-5pgsql1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: …Run Code Online (Sandbox Code Playgroud) 我有多台计算机在同一个项目上工作,我正在使用免费的assembla git repo帐户来管理所有这些.
为了访问git repo,我需要在每台计算机上生成唯一的SSH密钥.但是,计算机也可能正在处理其他的assembla项目,因此每当我生成一个新的ssh密钥时就会出现冲突(就像我必须继续替换id_rsa文件).一旦我在本地机器上重新创建id_rsa文件(并替换它们),它就会使用先前生成的ssh密钥失去对先前的assembla git项目的访问权限.
我对整个git业务都很陌生,并且在我去的时候努力学习.
我找到的东西听起来像是我问题的解决方案:"不同项目的不同SSH密钥" http://www.assembla.com/spaces/breakoutdocs/wiki/Different_SSH_keys_for_different_projects
但是,我不明白怎么做#1?它说"在$ PATH这个脚本中放置一个地方(让它的名字将是gitssh)",但我不知道"$ PATH"是什么/在哪里?
任何帮助将不胜感激.谢谢!!
我有一台具有 SSH 访问权限的服务器,我想在那里放置一个 Git 原始存储库。我刚刚在本地创建了一个 --bare --shared 存储库,并将其复制到每个 SCP 的服务器上。现在我想根据 SSH url 克隆这个存储库。我试过
ssh://USERNAME@HOST/folder1/folder2/gifolder.git
ssh://USERNAME:PASSWORD@HOST/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:PORT/folder1/folder2/gifolder.git
ssh://USERNAME@HOST:/folder1/folder2/gifolder.git
Run Code Online (Sandbox Code Playgroud)
以及以上的一些组合。但 Git 总是说
"fatal: The remote end hung up unexpectedly"
Run Code Online (Sandbox Code Playgroud)
尽管我可以通过 SSH 使用用户名和密码连接到主机。
是否可以按照我想要的方式使用 git,或者我是否必须以完全不同的方式设置它?
更新:
我将 Git 扩展配置为使用 OpenSSH 而不是 Putty,现在 OpenSSH 要求我在“克隆”后输入密码。当我输入正确的密码时,出现以下错误:
bash: git-upload-pack: command not found
Run Code Online (Sandbox Code Playgroud)
(OpenSSH 似乎可以连接到服务器,因为它希望我在输入其他内容时重新输入密码)所以。现在我需要解决这个新问题。首先:我无法在服务器上安装 git。是否可以在不安装 git 的情况下使“git-upload-pack”和“git-receive-pack”可用?
再次感谢
更新2 - 解决方案:
解决方案是将远程存储库目录集成为每个 SSH/SFTP 的本地目录。我正在使用http://www.expandrive.com/来实现此目的。谢谢
经过几个月不间断的无密码工作,我的TortoiseGit在推/拉时开始向我询问我的某些遥控器上的密码.我正在寻找解决方案来解决这个问题,因为这会让我发疯.
要强调:我希望继续使用基于SSH的无密码登录,因此任何假设在URL中添加密码或在TortoiseGit配置中永久存储密码的解决方案都不适合我.
到目前为止我发现了什么:
我的问题是不相关的GitHub; 我不在TortoiseGit中使用它,它发生在其他遥控器上.
我确实有 SSH,而不是HTTPS,地址作为repo的URL,我没有 类似的git clone内容.
我可以使用Netbeans 推送/拉出相同的存储库(我的Netbeans已Select Configured Git Repository Location选中选项,因此它使用相同的远程配置).
我无法使用Git GUI推/拉远程,原因相同:要求用户密码.
这是不是与特定系统或机器(SSH密钥),正好我的两个工作电脑(32位的Win 7)和一个家(64位的Win 7)上.两者当然都使用不同的SSH密钥(请参阅对此答案的评论,声称该问题与32位版本的Windows有关;但事实并非如此,它也发生在64位Windows上).
存储库,这发生,不是空的 - 我听说甚至受到个人影响,有时TortoiseGit获取wako并在无密码登录遥控器上请求密码,直到该遥控器为空.
这是不是与特定的远程- TortoiseGit工作正常,不要求对一些仓库密码(即到位桶),但"死亡"的一些其他要求它(即在本地开发的网络).
更糟糕的是,有一些遥控器,家用电脑上的TortoiseGit失败,要求输入密码,而从家用电脑访问的遥控器工作正常.反之亦然.我使用相同的步骤设置两台机器进行无密码登录; 只有SSH密钥不同.
到目前为止我所做的事情(并没有解决问题):
将SSH客户端(TortoiseGit -> Settings -> Network)更改为两者Git\bin\ssh.exe(如此处所示)和C:\Program Files\PuTTy\plink.exe.
使用凭证助手没有帮助,我听说它只适用于HTTPS,而不适用于SSL.
下载git-credential-wincred.exe并将它放到Git for Windows/msysgit文件夹也没有帮助; 我已经在那里(不同的版本/文件大小;检查两者).
这个问题显然与要求输入用户密码有关,因此git …
我为我的项目提供了这个远程 URL。
git remote add origin https://gitlab.com/AbdullahValley/simple-crud.git
Run Code Online (Sandbox Code Playgroud)
当我输入这个命令时:
$ git push -u origin master
Run Code Online (Sandbox Code Playgroud)
它给出了一些我在这里不明白的错误。
致命:无法从重定向更新 URL 库:
要求:gitlab.com/AbdullahValley/Simple-CRUD.g/info/refs?service
=git-receive- pack重定向:gitlab.com/users/sign_in
我在向本地存储库添加远程存储库时遇到问题.我首先尝试使用Tower来管理我添加本地仓库,但是当添加远程仓库时,它只是添加了URL.它没有说明这个URL.它应该包括ssh://我的用户名等.
所以我发现了这篇文章,并严格遵循它,直到添加一个远程存储库.它失败了.有人可以帮忙吗?
Kasper-Srensens-MacBook-Pro:~ Kasper$ git remote add origin ssh://kasperso@kaspersorensen.com:2227/www/mechatronicscluster/wp-content.git
fatal: Not a git repository (or any of the parent directories): .git
Kasper-Srensens-MacBook-Pro:~ Kasper$
这就是我今天尝试做的十次没有成功的事情:
然后,我在 cygwin 中运行 '$ ssh -vT git@github.com',但它总是挂在那里。这是输出:
$ ssh -vT git@github.com
OpenSSH_6.0p1, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /home/eason.wu/.ssh/config
debug1: /home/eason.wu/.ssh/config line 1: Applying options for github.com
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to github.com [207.97.227.239] port 22.
debug1: Connection established.
debug1: identity file /home/eason.wu/.ssh/id_rsa type 1
debug1: identity file /home/eason.wu/.ssh/id_rsa-cert type -1
Run Code Online (Sandbox Code Playgroud)
有没有人遇到这个问题,任何解决方案将不胜感激
我使用stash作为git存储库管理器.stash使您可以为尝试连接和克隆的每个用户添加ssh密钥.我已经为所有unix用户配置好了,但是Windows给了我很多困难.Windows从机(2008 R2服务器)上的git clone进程永远挂起,因为它可能找不到保存密钥的.ssh目录.当从cli手动运行相同的命令时,它工作正常.
我尝试了各种配置,使用%HOME%env变量等.它根本不适合我.在这个问题上花了一天多的时间但没有任何效果.
任何帮助表示赞赏.