我正在尝试在我的Web主机上创建一个git存储库并在我的计算机上克隆它.这是我做的:
ssh-keygen -t dsa.~/.ssh.然后,在尝试运行该命令后git clone ssh://user@host/path-to-repository,我收到一个错误:
无法与XX.XXX.XX.XX协商:未找到匹配的主机密钥类型.他们的提议:ssh-dss
致命:无法从远程存储库读取.
请确保您具有正确的访问权限并且存储库存在.
那是什么意思?
我正在尝试按照本教程设置与Github的SSH连接:https:
//help.github.com/articles/testing-your-ssh-connection/
我遇到了以下命令:
$ ssh -T git@github.com
# Attempts to ssh to github
Run Code Online (Sandbox Code Playgroud)
好奇,我看了ssh手册.它说如下:
-T Disable pseudo-tty allocation.
Run Code Online (Sandbox Code Playgroud)
什么是tty分配?tty代表什么?我们为什么要禁用它?
我认真地试着查一查,但我甚至找不到定义.
我知道答案就在那里,但我非常愚蠢,如果它让我面目全非,可能无法识别解决方案.
我在Mac上,通过SSH隧道连接到SVN服务器.我ssh-add privateKey.txt每次都要连接到SVN服务器(两个Cornerstone和Xcode都连接到SVN).
有没有办法在某处"保存"密钥,所以我不必每次都这样做?把它添加到我的钥匙串?一些配置文件?启动脚本?
我不想在流浪盒上创建新的SSH密钥对,而是使用代理转发重新使用我在主机上的密钥对.我已经尝试在Vagrantfile中将config.ssh.forward_agent设置为TRUE,然后重新启动VM,并尝试使用:
vagrant ssh -- -A
Run Code Online (Sandbox Code Playgroud)
...但是当我尝试进行git checkout时,我仍然会收到提示输入密码的提示.知道我错过了什么吗?
我有一个git和我的终端问题.
这是一个向您展示我的问题的图库:http://imgur.com/a/6RrEY
当我从我的终端推送提交时,git说我用另一个用户名推送它们,那是我的组织(我公司)的用户,根本没有提交,似乎它不属于任何人:( 查看图库第一张图片)
但是当我使用Github for mac时,这种情况不会发生,在Feed中我看到了自己提交的提交.
这个问题也影响了我的个人存储库,我的终端说我没有权限推送这些存储库的提交(这显然是错误的),因为它试图用这个用户推送它:( 查看图库第二张图片)
你猜怎么着 ?对于Mac来说,Github也不会发生这种情况.
几天前我把我的电脑变成了一个全新的电脑,所以我重置了我所有的github的ssh密钥并且只留下了一个由Github for Mac生成的新密钥,所以我不认为有一些ghost用户/ ssh密钥被隐藏了在某个地方,这个硬盘是全新的:( 查看图库第三张图片)
我的.gitconfig文件全部清除,只有我的凭据:( 查看图库第四张图片)
我真的不明白,帮助,StackOverflow,你是我唯一的希望.
(我为我可怜的Gimp技能和星球大战参考道歉)
编辑: ssh-add -l只显示由github为mac创建的好的ssh密钥,我只有一个github帐户
EDIT2: ssh -T git@github.com认出我是好用户.
EDIT3:经过几次测试后,看起来我的终端用我的用户名进行提交,但是用另一个提交它们,Github用于mac提交并推送好的用户名.这种情况发生在我拥有/制作的每个仓库(甚至是新的)那些).
EDIT4:在个人存储库中git log --pretty="%h %an %ae"显示我的好用户名
编辑5:没有任何环境变量的迹象会覆盖我的凭据env.即使我尝试设置具有良好凭据问题的变量仍然存在.
编辑6:如果我强迫用户在/.git/config存储库的路径中,事情正常工作,但我认为这不是一个好的选择:http://USER@github.com/USER/REPO.git
编辑7:我们删除了为我推送提交的git用户,这带来了另一个错误:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
最终编辑:我用自制软件安装了git,打字 git config --global push.default simple ,现在即使不强迫用户也需要我的凭据.真奇怪.谢谢大家的帮助,你们真棒!
我设置了一个git服务器,现在想要从客户端推送我的repo.我使用git push origin master并收到此错误消息:
fatal: protocol error: bad line length character: Unab
Run Code Online (Sandbox Code Playgroud)
我不知道出了什么问题.我不知道"Unab"是什么.我试图调整shell的大小,但它仍然是"Unab".我找不到此错误消息的解决方案.
我用"authorized_keys"和SSH设置服务器.(我可以使用SSH连接到它.)
这似乎是一个git问题?
BTW:服务器设置在Windows 7 VM中
我尝试将更改从我的本地仓库推送到远程仓库.当我输入:
git push origin
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?我在Windows 7中使用命令行中的git.
编辑
当我尝试做一个简单的ssh
ssh user@hostname
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Could not create directory '/c//%HOMEDRIVE%%HOMEPATH%/.ssh'.
percent_expand: unknown key %H
Run Code Online (Sandbox Code Playgroud)
不知何故,它不会创建目录,因为路径无效.如何解决这个问题?
@eckes:Edit2
我的家设置%HOMEDRIVE%%HOMEPATH%为这是正确的吗?
我跑 git push -u origin master
它告诉我"权限被拒绝(公钥)致命:远程端意外挂断"
然后我查了一下互联网,发现我必须在GitHub上为我的帐户生成一个ssh密钥.但是,这样做的时候,当我尝试做ssh-keygen -t rsa"email@youremail.com"时,它只是说ssh-keygen无法识别.我尝试过做mkdir C:\ ssh但是没有用.如果它有助于我使用Ruby Rails并且我在Windows计算机上.谁能帮助我?
我的问题是我不能从GitLab推送或获取.但是,我可以克隆(通过HTTP或通过SSH).我尝试推送时出现此错误:
权限被拒绝(publickey)致命:无法从远程存储库读取
从我看过的所有主题来看,这就是我所做的:
现在我想要打我的电脑.如果您对如何解决我的问题有任何见解,我们将不胜感激.