GitLab使用ssh连接免密登录失败
gitlab安装成功之后,我在某一个用户下增加了ssh公钥,提交克隆时还是需要密码,但是输入了很多密码,还是不行。
1.尝试的各个方法
gitlab的日志文件在/var/log/gitlab中。
(1)打开/var/log/secure文件,查看登录日志:
(2) 我修改了/etc/security/access.conf,在最后添加了:-:ALL EXCEPT root git:ALL,(gitlab默认创建了git用户),systemctl restart sshd重启sshd,不起作用。
(3)我修改了/etc/ssh/sshd_config,添加了:AllowUsers git,还是不起作用。
(4) 使用:ssh -vvT git@192.168.1.60,测试
(5) 使用git用户登录:su git,然后:ssh-keygen -t rsa -C “your email”生成密钥,失败
(6) 强制解锁密码:sudo passwd -u -f git
然后重新设置git的密码:passwd git,结果不起作用。
(7) 修改/root/.ssh文件夹权限:chmod 700 .ssh/, 失败。(这个慎用,我设置了700,最后xShell无法使用ssh登录了。只能设置为777才重新登录上的。)
弄了很长时间,还是不行,先老老实实用http模式访问,待有空再继续深究。
1.git已经配置好ssh,clone时还是需要密码
2.GitLab添加公钥后仍然需要输入密码的解决
3.gitlab ssh-key 不生效问题,ssh push需要密码
4.为GitLab帐号添加SSH keys并连接GitLab
5.centos无法通过ssh连接的解决
6.CentOS7 新建用户与SSH登陆设置
7.centos无法通过ssh连接的解决
8.Git服务器添加公钥后仍需要输入密码
9.gitlab的日志系统
(8) 我想到了,是不是因为用户名配置的不对呢?gitlab在判断用户权限的时候,是不是使用了git config中的值呢?于是我按照空项目的时候,提示的要创建的全局用户名和邮箱,进行了设置。
结果失败啊。
(9) 修改配置文件/.ssh/config文件(没有,就创建)/.ssh/config文件
创建
1 | host 192.168.1.60 |
这个方法也不行。
1.最详细的git配置端口号,多个gitlab间随意用
2.linux安装gitlab并修改gitlab默认端口号
3.git客户端连接ssh端口不是22的gitlab
4.利用 SSH 的用户配置文件 Config 管理 SSH 会话
5.使用 SSH config 文件
我突然想到了,为了验证是否是gitlab的问题,我可以先用root用户登录试试。如果配置了公钥,使用root用户可以登录,那么就有可能是gitlab的问题。如果root用户也无法正常登录,则有可能是其他的问题。
经过验证,使用root也无法登录ssh远程电脑。
20200229更新
我在另一台电脑上,添加了ssh的key,然后测试ssh连接,出现了:Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that a host key has just been changed.The fingerprint for the RSA key sent by the remote host is 错误。
解决方法:删除~/.ssh/known_hosts文件(我这里删除的是c/Users/Administrator/.ssh/known_hosts),或者如果你可以判断出known_hosts中原ssh服务器的公钥,删去那部分。
2.终极解决方案
最后只能进行了重装了(可能是版本问题)。没有什么是重装系统解决不了的问题。如果有,那就买个新电脑吧。因为gitlab-ee也是依赖这个openssh的,所以也会被一同卸载,我的gitlab作为一测试,还没有很多仓库,就干脆卸载了。
1 | ## 停止sshd |
奇怪重装之后,还是不行。
1 | ## 安装网络测试工具netstat |
最后我把我windows上的公钥也重新生成了一遍,结果竟然真的可以登录了。
可喜可贺啊,可喜可贺啊,尝试了这么多方法,最后竟然是因为本机密钥不对所以连接不上,终于算是完成了第一步的工作了。但是同样的,为何在其他的电脑上,也是无法登录呢?
经过卸载openssh和gitlab-ee重新安装,重新安装过程,也是曲折百出,但是最终还是让我解决了(GitLab服务器搭建, 其中的问题汇总。),最终终于解决了ssh无法登录的问题。
我突然有这样的疑问,为何还需要花费如此多的时间,如此执着的解决一个可能并不影响最终结果的问题呢?
1.centos 系统如何重新安装ssh 远程服务
2.ubuntu下安装、启动和卸载SSH
3.ubuntu下重新安装openssh-server
4.Centos7卸载重装ssh
5.CentOs 7 安装 GitLab、完全卸载GitLab
6.centos ssh服务安装、卸载和配置
7.netstat命令怎么查看端口是否占用
3.ssh登录特别慢
主要是因为dns解析的问题。在ssh服务其上编辑/etc/resolv.conf,增加:
1 | search localdomain |
重启网络
1 | systemctl restart network |
速度就明显变快了。测试连接时间:
1 | time ssh root@192.168.1.60 exit |