1、在GitLab上配置了客户端的ssh-key还是需要输入密码
GitLab默认是以http方式进行上传的,但是文件过大,Nginx与GitLab的默认配置限制了客户端像服务器传送文件的大小,,当前环境当中GitLab是以Docker来跑的一个容器,端口映射发现失败,所以直接修改。
2、解决问题
登录到服务器上,修改配置文件
docker exec –it gitlab /bin/bash
find / -name gitlab.rb
vim /etc/gitlab/gitlab.rb
/gitlab_shell_ssh_port #在vim编辑器中找到此行
gitlab_rails['gitlab_shell_ssh_port'] = 2222 #并且修改为这个样子,将ssh端口改为2222
:wq! #保存并退出
exit #退出当前容器
docker restart gitlab #重新启动该容器
3、回到Windows上,解压要上传的文件
在解压后的文件夹右击选中”Git Bash Here”(前提是电脑安装了Git Bash),如图
在命令行中使用ssh-keygen –t rsa –C “admin@example”(此处的admin@example为你要用哪个用户上传就写哪个用户的邮箱地址,本人用的root)生成密钥文件,命令敲完以后默认回车即可,如图
找到密钥生成的位置,此处为C:/Users/Administrator/.ssh/id_rsa.pub,并将内容复制到gitlab上,按照以下步骤找到gitlab上配置ssh-key的地方
然后在命令行中依次执行如下命令
1 cd test #进入到要上传的项目的文件夹中
2 git init #初始化此目录,使git可以管理这个文件夹
3 git config --global user.name "administrator"
4 git config --global user.email "admin@example.com"
5 git remote add origin ssh://git@”gitlab地址”/“项目用户”/”项目名称” #后面的那些在gitlab上面新建项目的时候就会指定,并且可以看到
6 git add . #在Windows上这个命令刚开始会报错,使用第五步解决
7 git config core.autocrlf false
8 git add . #重新执行,等待,时间可能会比较长,因为文件较大
9 git commit –m “test version” #提交并且指定提交后的信息
10 git push –u origin master #将当前目录下的分支推送到主分支
5、为了保持安全性,再次登录到运行的容器gitlab上将那一行删掉,并且重启容器
1 docker exec –it gitlab /bin/bash
2 vim /etc/gitlab/gitlab.rb
# gitlab_rails['gitlab_shell_ssh_port'] = 2222 #注释这一行
3 docker restart gitlab #重启目标容器生效
更多GitLab相关教程见以下内容:
CentOS7安装GitLab、汉化及使用 https://www.linuxidc.com/Linux/2017-11/148223.htm
CentOS 7安装部署GitLab服务器 https://www.linuxidc.com/Linux/2017-06/144990.htm
CentOS 7.x上GitLab搭建详细教程 https://www.linuxidc.com/Linux/2017-12/149766.htm
CentOS 7安装部署GitLab服务器 https://www.linuxidc.com/Linux/2017-06/144990.htm
CentOS 7使用Docker搭建GitLab服务器 https://www.linuxidc.com/Linux/2018-04/151725.htm
Ubuntu 16.04搭建GitLab服务器 https://www.linuxidc.com/Linux/2018-01/150319.htm
快速学会CentOS配置GitLab https://www.linuxidc.com/Linux/2018-08/153345.htm