无法使用ssh推送到gitlab分支

时间:2019-07-14 03:12:24

标签: git ssh gitlab

我是gitlab的新手,这是我第一次使用ssh。我可以生成ssh密钥并将其添加到我的帐户设置中。我可以通过ssh克隆仓库,我可以结帐到分支,但是我仍然不能做的就是将更改推送到分支。这是逐步生成ssh密钥的步骤,直到我尝试按它为止(按照here中的说明进行操作):

PS。我正在使用Windows 10。

  • 在终端上(以管理员身份),键入:ssh-keygen -o -t rsa -b 4096 -C "myemail@example.com"
  • Enter作为ssh键的默认路径
  • 提供密码
  • ~/.ssh/中创建配置文件。这是我在配置文件中写的:

Host ahostname Hostname myhostname.com User mygitlabusername Port port PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa

  • 使用以下命令复制ssh密钥:cat ~/.ssh/id_rsa.pub | clip
  • 将ssh密钥放入我的帐户设置
  • 然后运行ssh -T git@myhostname.com,结果如下:

The authenticity of host '[myhostname.com]:port ([123.456.789]:port)' can't be established. ECDSA key fingerprint is SHA256:xxxx. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[myhostname.com]:port ([ipofmyshost]:port)' (ECDSA) to the list of known hosts. Enter passphrase for key 'C:~/.ssh/id_rsa': Welcome to GitLab, <myusername>!

  • 然后我尝试克隆一个仓库:git clone ssh://git@myhostname.com/repo.git
  • 但是,显然,在克隆时,它指的是另一个IP地址。例如,假设ipofmyhost上的ssh -T git@myhostname.com123.456.789。然后,在克隆时,IP更改为123.456.781(对不起,我怕我不能提到真实IP)。所以,这是我尝试克隆存储库时得到的:

Warning: Permanently added the ECDSA host key for IP address '[123.456.781]:port' to the list of known hosts. Enter passphrase for key '/c/.ssh/id_rsa':

  • 但是克隆完成了,然后我用git checkout mybranchname签到了我的分支
  • 现在,我在分支机构中。做出一点改变。尝试push,但这是我遇到的错误:

git@myhostname.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

我在这里错过了什么?我发现了this个问题,但很抱歉,我不明白所接受的答案建议我做些什么来解决这个问题。

更新

我尝试再次重新克隆,但是在此之前,我删除了所有known_host。然后,再次进行git clone而不用ssh -T git@myhostname.com进行测试,以避免创建新的IP地址。但是,即使没有将新的IP地址添加到known_host时,推送分支时仍然出现相同的错误。

1 个答案:

答案 0 :(得分:0)

重试进行测试,使用创建的 密码不使用SSH密钥。

或者,首先,确保已将密钥添加到ssh-agent with ssh-add
参见“ Working with non-default SSH key pair paths

您可以“ Auto-launching ssh-agent on Git for Windows”(GitHub上的说明,但对GitLab也有效)