通过 ssh 克隆时询问密码

Axe*_*HAR 2 git ssh git-clone gitlab

我正在使用 gitlab 的自定义安装。我在 wsl2

ssh 版本:

ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.2, OpenSSL 1.1.1f  31 Mar 2020
Run Code Online (Sandbox Code Playgroud)

我创建了 ssh 密钥,然后将其添加到 gitlab

我还使用 ssh-add 添加了密钥

ssh-add -l
4096 SHA256:XXX...XXX (RSA)
Run Code Online (Sandbox Code Playgroud)

但是当我想通过 ssh 克隆 git 存储库时出现错误

git clone git@XX.XX.XX.XX:user/repo_name.git
git@XX.XX.XX.XX's password:
Permission denied, please try again.
Run Code Online (Sandbox Code Playgroud)

但当我这样做时

ssh -T git@XX.XX.XX.XX
Welcome to GitLab, user
Run Code Online (Sandbox Code Playgroud)

它不会要求我输入密码。

有人有解决办法吗?我已经到处寻找但一无所获

Axe*_*HAR 5

我的错,这是一个我没有看到的明显问题。对于有同样问题的人来说,以下解决方案可能不适合您,因为这是一个特殊情况。

解决方案:我使用简单用户登录到我的服务器

当我克隆时,我使用了sudo ,因此在 ssh 中连接时,系统会搜索

root/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

代替

/home/user/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

我的 ssh 密钥实际上在哪里,所以因为它无法通过密钥在 ssh 中连接,所以终端会显示一个密码来输入

帮助我找到这个的命令是

sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone git@gitlab.example.com:my-group/my-project.git
Run Code Online (Sandbox Code Playgroud)

因此避免将 sudo 与 git 命令一起使用