配置了gitLab之后首先是nginx提示505,就是资源找不到之类,但是直接通过端口3000去访问gitLab是可以,看来这就是nginx的问题,之后给配置nginx root权限解决
又不用户下不存在.ssh文件,我就直接mkdir了一个,然后ssh key方式就无法登陆了,切换到其他用户,完全没问题,后来对比了一下两个用户.ssh文件的属性,发现直接mkdir的权限太高了,之后google,知道,安全起见,需要限制该文件的权限。
各项配置号之后,比较坑的又有了,在配置ssh key之前,发现git的时候clone找不到repositories,gitlab的配置文件仓库路径写的也很清楚啊,之后在git url地址前加上repositories/才找到,但这种情况只在使用gitlab服务器密码登录的时候才会出现,在之后使用ssh key认证登陆的时候,需要将repositories去掉。在安全起见,git服务器的密码肯定不能告诉给所有人。所以这种方法不可用。
gitLab使用gitLab-shell添加到得authorized_keys(~/.ssh/)是对ssh的访问做了限制的,具体的限制可以查看command,直接访问会提示Server refused allocate pty,所以在配置了ssh key之后,用户可以clone,push等操作。禁止用录登录。这样git服务器的数据也就安全了。客户端的用户只需要添加key之后就可以提交。如果你有服务器密码,将authorized_keys的command删除,这样就是普通的ssh key登录。需要将repositories加上。
在客户端使用puttygen生成公钥和密钥,使用TortoiseGit来图形化操作git
在linux重启的时候总是提示rb:234:in 'initialize'
Address already in use - "/home/git/gitlab/tmp/sockets/gitlab.socket" (Errno::EADDRINUSE)
那就直接rm了,删掉这个文件,手动启动gitlab,
sudo service mysqld start
sudo service redis start
sudo service gitlab start
sudo service nginx start
sudo service iptables stop