常规配置
gitlab配置ssh比较简单,在代码机上使用ssh-keygen -t rsa -C "你的邮箱"
制作id_rsa
和id_rsa.pub
,然后来到gitlab的web页面,settings—ssh keys,把id_rsa.pub
拷贝进去,然后点击Add key
:
然后返回到代码机器上,再对应的代码目录里使用git remote -v
查看一下当前的方式,如果不是git的话,通过git remote set-url origin git@你的project地址
修改,然后再试一下 ssh -T git@"你的gitlab服务器地址"
是否会出现welcome,如果可以的话,那么就可以通过ssh的方式下载上传代码以及git clone 对应的project
了。
容器配置
但是现在很多人都用容器部署gitlab,而且在部署的时候除了指定80,443端口的映射,还制定了22端口的映射。比如我的这个gitlab容器的启动命令就是:
1
docker run --detach --hostname 外网IP --publish 443:443 --publish 80:80 --publish 2222:22 --name gitlab --restart always gitlab/gitlab-ce:latest
可见我把宿主机的2222端口对应给了gitlab容器。那么像上面的方法肯定不会成功,这里就需要我们修改一处地方。
首先进入容器,然后修改gitlab.rb
文件,这个文件在容器里有很多,我这个镜像里的gitlab.rb是/etc/gitlab/gitlab.rb
,然后把gitlab_rails['gitlab_shell_ssh_port']
改成2222并且去掉注释,如图:
然后gitlab-ctl restart
重启之,重启完毕之后,在代码机上测试一下ssh:
可以已经连通,修改一下remote master地址之后,就可以直接上传了: