我刚装GitLab。
我创建了一个名为Project-X项目。
我已经创建了几个用户,并将其分配给项目。
我现在试图克隆:
git clone git@192.168.0.108:project-x.git
它提示我输入密码。
我应该使用什么样的密码?
我刚装GitLab。
我创建了一个名为Project-X项目。
我已经创建了几个用户,并将其分配给项目。
我现在试图克隆:
git clone git@192.168.0.108:project-x.git
它提示我输入密码。
我应该使用什么样的密码?
它提示我密码。
它不应该。
如果你有一个代表授权访问用户的权利公钥/私钥project-x
然后gitlab不会问你任何东西。
但是,假设该ssh -vT git@192.168.0.108
是工作第一。
没有严格与当前场景。 有时候,系统提示您输入密码的时候,那是因为你添加的错误*原点格式(HTTPS而不是SSH)
查看远程信息
git remote -v
如果它是与HTTP(S)地址,这是将其改为SSH命令:
git remote set-url origin git@gitlab.my_domain.com/example-project.git
HTTP(S)协议通常用于具有很强的用户名+通公共回购
SSH认证是内部项目比较常见的,你可以用SSH密钥文件和简单的口令验证
GitLab用户更有可能使用SSH协议
从溶液中https://github.com/gitlabhq/gitlab-shell/issues/46为我工作。
通过设置权限:
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
密码提示消失。
我使用4096位的密钥时,有同样的问题:
$的ssh - 凯基-t RSA -C “GitLab” -b 4096
$的ssh -vT混帐@ gitlabhost
...
DEBUG1:提供公共密钥:/home/user/.ssh/id_rsa
DEBUG1:身份验证,可以继续:公钥,密码
DEBUG1:试图私钥:/home/user/.ssh/id_dsa
DEBUG1:试图私钥:/home/user/.ssh/id_ecdsa
DEBUG1:下一个验证方法:密码
混帐@ gitlabhost的密码:
通过连接主机关闭
但与2048位密钥(默认大小),SSH连接到gitlab而不提示输入密码(添加新的酒吧关键用户的gitlab SSH密钥后)
$的ssh - 凯基-t RSA -C “GitLab”
$的ssh -vT混帐@ gitlabhost
欢迎GitLab,Joe用户!
又添加另一个原因列表...在我的情况,我发现正在由服务器上的SELinux的权限问题导致此问题。 这是值得一试,如果你的服务器运行的Fedora / CentOS的/红帽。 为了测试这种情况下,您可以运行:
客户: ssh -vT git@<gitlab-server>
-询问密码
服务器 : sudo setenforce 0
客户: ssh -vT git@<gitlab-server>
-成功
服务器 : sudo setenforce 1
在我的情况下gitlab / git的用户authorized_keys
文件中有错误的SELinux的文件和SSH服务正被拒绝的权限读取它。 我解决了这个问题,在服务器端,如下所示:
sudo semanage fcontext -a -t ssh_home_t /gitlab/.ssh/
sudo semanage fcontext -a -t ssh_home_t /gitlab/.ssh/authorized_keys
sudo restorecon -F -Rv /gitlab/.ssh/
我当时能git clone
预期在客户端上。
如果主机有可能发生这种情况“ - ”在它的名字。 (即使根据这是合法的RFC 952 )(使用的是Windows 10下的Git的Bash使用Git 2.13.2测试。)
SSH提示我对于出现这种情况有任何主机密码“ - ”在它的名字。 这似乎是纯粹用ssh配置文件解析因为添加一个别名的〜/ .ssh / config中(以及使用该别名在我的git远程URL)解决了这个问题一个问题。
换句话说尝试把类似的东西在C以下内容:/ Users / {用户名} / SSH /配置。
Host {a}
User git
Hostname {a-b.domain}
IdentityFile C:/Users/{username}/.ssh/id_rsa
并且,你有如下形式的远程
origin git@a-b.domain:repo-name.git
更改URL使用形式的下
git remote set-url origin git@a:repo-name.git
我有正确的公钥/私钥,但似乎并没有工作,反正(有同样的错误,提示git的用户密码)。 计算机重新启动后,它的工作,但!
对于Windows机器相同的解决方案:
克隆应该是成功的,没有密码要求。
就我而言,我使用的是一对没有默认名称键id_rsa
和id_rsa.pub
。
这些名称产生键解决了这个问题,我居然发现它在寻找的输出ssh -vT my_gitlab_address
。 奇怪的事实:它的工作在一台计算机上使用Ubuntu,但不能在其他人不同的分布和老版本的OpenSSH。
我使用的是mac.gitlab安装在CentOS的服务器。
我已经尝试了所有方法上面,找到了最终答案对我来说:
错误:
ssh-keygen -t rsa
对:
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
在Windows 10下使用VS守则终端我有一个提示“混帐@ gitlab的密码:”想的时候:
git push -u origin --all
我建立了我的SSH信用凭证在Windows和gitlab,但我已经使用了Windows 10猛击键根这样做。 然后将溶液以调用的bash在VS代码终端,然后再次发出该命令。
bash
git push -u origin --all
它成功了。
为了避免手动使用bash / GIT中,我然后把窗口的.ssh / id_rsa和bash外壳的.ssh / id_rsa之间的符号链接:
C:\Users\bruce\.ssh>mklink id_rsa C:\Users\bruce\AppData\Local\lxss\home\bruce\.ssh\id_rsa
VS代码Git的菜单操作(推,拉等)现在gitlab工作
我有同样的问题,我花了很多时间寻找!
我有想法,使用Eclipse导入从GitLab项目。
一旦项目导入正确,我做的配置之间的比较:
惊喜:远程没有在这两种情况下是相同的。 我递给一样,在Eclipse和一切正常。
有在Windows 10中的相同的问题(不知道这是否是相关的)。 拥有一切设置正确,则ssh -vT git@myserver
命令成功,但仍然Gitlab问我的密码。
删除然后重新创建在Gitlab关键是招我。
在我的Windows 10的机器,这是因为在SSH_GIT环境变量未设置为使用我有我的机器上安装腻子砰砰。
你可能平时如果有通过ssh多个按键设置您的系统上(我的设备运行的是Windows 10),你会遇到这个问题,解决方法是:
由GitLab表示设置你的SSH密钥:前提条件
请注意,还有就是避免这种情况的解决方案不工作的第二行前的空间,非常重要。
如果你确信你已经上传key.pub的内容转换成GitLab,则:1 -打开Git的打击“不CMD” 2 -浏览到解决方案文件夹“CD路径” 3型Git Init
4-类型Git Add .
4-类型Git Commit
6-类型Git Push
它会运行另一个提示:请确保您复制的关键是正确的,相当于创建键时,它表现出对CMD的相同路径的文件的路径
我的问题是,我有一个DNS条目gitlab.example.com
指向我的负载平衡器。 所以,当我试图ssh git@gitlab.example.com
我真的ssh'ing的误机。
我在做一个条目~/.ssh/config
文件:
Host gitlab.example.com
Hostname 192.168.1.50
这浪费了很多时间......