git客户端通过ssh协议拉取代码需要密码

背景:

在给学生做git项目管理培训的时候,出现已经把公钥给到了远程仓库,但是拉取代码的时候确出现了需要输入密码的提示,我们正常不是只需要把公钥给到远程仓库,然后就可以直接通过ssh协议拉取代码了吗,为何我确提示要输入密码呢?于是带着这个问题排查两天,百度和git学习群都没有遇到过解决这个问题的办法,于是自己灵机一动,想到了git服务器可能需要重启服务刷新配置才能解决。

提示如下:

在这里插入图片描述
这里提示让我输入远程仓库的密码,但是我已经将本机的公钥给到了远程仓库

解决办法:

1、首先查看是否能通过ssh协议免密连上远程仓库机器
$ ssh -T git@git远程仓库IP
在这里插入图片描述
这样表示连接成功,如果不成功,做第二步操作

2、重启远程仓库的gitlab服务

[root@gitlab-53 .ssh]# /etc/init.d/gitlab restart
Removing stale Sidekiq job dispatcher pid. This is most likely caused by Sidekiq crashing the last time it ran.
Shutting down Unicorn.
GitLab is not running.
Starting both the GitLab Unicorn and Sidekiq
The GitLab Unicorn web server with pid 29099 is running.
The GitLab Sidekiq job dispatcher with pid 29134 is running.
GitLab and all its components are up and running.

我这里第一步连接失败了,所以做了第二步操作,刷新了git服务器密钥配置,问题得到解决!

好了,这就是解决git客户端通过ssh协议拉取代码需要密码的办法了,如有问题可与博主一起交流讨论!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐