GitLab 里 clone repo 提示 Permission denied (publickey) 的解决方法(记录采坑步骤)
0x00 Why
因为我 Clone 不了我自己的 repo【
Cloning into 'magnet-to-torrent-bot'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
0x01 Get Started
我用的 WSL,系统为 Debian。里面没有任何 SSH Key。
前提是你有 SSH Key 的备份,以及你已经在 GitLab 里添加了 SSH 的 Pubkey。
## 0x02 Installation Precess
首先,用 ssh-copy-id
从我别的机子上面拉了 Pubkey 下来,名字是 id_rsa.pub
。然后移动到 ~/.ssh/id_rsa.pub
下面。
设置权限:
chmod 600 ~/.ssh/id_rsa.pub
接下来测试是什么问题导致的:
ssh -vvvv git@<你的 GitLab 实例>
没有 Key?
ssh-add ~/.ssh/*
等了一会,然后提示还是没有 Key。 最后看到 log 里面有这样一句:
...
debug3: no such identity: /.../.../.ssh/id_rsa: No such file or directory
...
喂,还要这个的?
遂添加,设置权限然后重新执行 ssh-add ~/.ssh/*
,问题解决。
0x03 References
- https://stackoverflow.com/questions/9270734/ssh-permissions-are-too-open-errorhttps://stackoverflow.com/questions/9270734/ssh-permissions-are-too-open-error
- https://stackoverflow.com/questions/24154816/git-bash-could-not-open-a-connection-to-your-authentication-agent/31017638
- https://serverfault.com/questions/833194/ssh-key-passphrase-wrong-but-its-right
- https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair
0x04 Questions
执行 ssh-add ~/.ssh/*
的时候我明明输入了正确的密码啊!
通常是这种情况会出问题:
Enter passphrase for key /.../.../.ssh/id_rsa.pub:
Bad passphrase, try again for /.../.../.ssh/id_rsa.pub":
Pubkey 是没有密码的。直接回车。
Could not open a connection to your authentication agent.
你需要先运行 ssh-agent
:
eval `ssh-agent -s`
Permissions are too open.
前文说过了,推荐权限设置为 600。400 的话你自己就没法写了。
0x05 Other Unnecessary Notes
真麻烦。
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
如果上面没有加载出任何东西,可以点击这里。