我是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
cat ~/.ssh/id_rsa.pub | clip
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
ipofmyhost
上的ssh -T git@myhostname.com
是123.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
时,推送分支时仍然出现相同的错误。
答案 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也有效)