自己之前使用gitosis管理用户,长时间没有使用了,期间电脑重新安装了,导致之前电脑里ssh的私有key丢了,再使用时出现了一些问题,就随手记一下吧。
■ 指定SSH端口
ssh经常会修改为其它的端口,这种情况访问不能象ssh命令中那样加 -p参数,而要像下面这样:
git clone ssh://用户名@主机:ssh端口/项目名
如:
git clone ssh://git@192.168.1.1:8989/myproject.git
需要注意的是在ssh使用默认端口时 ":"后面可直接接项目名(xxxx.git),
但这里加了端口后需要追加分割符号,千万别再加一个":"来分割。而使用"/"分割
这个不需要指定全路径, /myproject.git 这里的myproject.git只是在仓库中的项目名而以。
■public key认证 及 相对路径的问题
因为我是想配置一些权限及追加public key, 所以用gitosis-admin这个项目举例:
当我clone gitosis-admin.git项目时,出现下面的错误:
git clone ssh://git@192.168.1.1:8989/gitosis-admin.git
Cloning into 'gitosis-admin'...
git@192.168.1.1's password:
fatal: '/gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
这里有两个错误
1. git@192.168.1.1's password:
当然这里只要输入正确的git的用户名和密码就可以了,或都你将你的public key放到git用户的.ssh下手动导入 cat 到authorized_keys文件中,但同样会出下
fatal: '/gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
这个错误。
网上一般的解决方法是将 /gitosis-admin.git 换成全路径,这样的确可以clone下来,也可以正常提交,但这样就绕过了gitosis的管理,这不是我想要的结果。
2. fatal: '/gitosis-admin.git' does not appear to be a git repository
如果不是gitosis-admin的成员或没有git用户通常的访问权限,你就得找他们来帮你弄了。
其实只要是通过正常gitosis的配的手顺,是不会出现这个问题的。
将你的public key(如 temp.pub) 放到 gitosis-admin/keydir目录下,修改gitosis.conf,追加用户到gitosis-admin项目中
[group gitosis-admin]
writable = gitosis-admin
members = admin temp
然后对这两个文件追加,提交,push即可。
git add gitosis.conf
git add temp.pub
git commit -m "XXXXX"
git push origin master
然后你再 git clone ssh://git@192.168.1.1:8989/gitosis-admin.git
就不会再出现上面的两个错误,可以正常使用相对路径了。
关键的地方在于,gitosis会将你的xxx.pub的内容导入到git用户的.ssh/authorized_keys"文件,
gitosis导入的格式和通常的格式不太一样,例如
command="gitosis-serve temp",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
看一下就知道为什么自己导入的会绕过gitosis管理了吧。
分享到:
相关推荐
虚拟机Ubuntu+python+redis+MySQL+SSH+Git+Django+Postman,提供下载,助力毕业设计。 该虚拟机中,安装的软件如下: Ubuntu 18.04.6 LTS 64位 Python 3.6 Pycharm-comunity Redis 4.3.6 pip pyinstaller3.5.3...
git+gerrit+jenkins+sonar持续集成环境大家资料,具体搭建步骤请参考本人博客。 里面还有一些插件,方便大家少走弯路
jenkins+git+maven搭建自动构建项目过程,其中部分简单安装省略
在Git+Git乌龟的使用中,以下几个关键知识点是非常重要的: 1. **安装与配置**:首先,你需要在计算机上安装Git和Git乌龟。Git提供了命令行工具,而Git乌龟则作为图形化的补充。安装完成后,需要配置用户的姓名和...
GIT+Gerrit+Jenkins基础操作
下面我将详细阐述在使用Git进行团队协作和自动化部署时需要掌握的知识点。 分支操作是Git的核心功能之一,它让多个开发者能够并行地开发软件的不同部分。在Git中,一个分支代表一个特定的开发线。主分支(通常名为...
### git+ssh Ubuntu 安装配置笔记 #### 一、服务器端配置 ##### 环境准备 在开始之前,请确保您的Ubuntu系统版本为12.04,并且已拥有root权限。 **步骤1:安装Git** 使用命令行工具安装Git及Git核心组件: ```...
Jenkins+Git+Maven+Shell+Tomcat 持续集成环境 本文主要讲述如何使用 Jenkins、Git、Maven、Shell 和 Tomcat 搭建一个持续集成环境,以提高软件开发效率和质量。首先,Jenkins 是一个开源软件项目,旨在提供一个...
Jenkins+Git+Maven+Tomcat 自动化集成环境搭建 本文将详细介绍如何使用 Jenkins、Git、Maven 和 Tomcat 实现自动化构建、部署 web 应用程序的集成环境。 环境安装 首先,我们需要安装以下环境: 1. 操作系统:...
2. 将用户 git 设置为 Gitosis 的管理员。 生成 Admin 端的公钥 生成 admin 端的公钥,并将其拷贝到服务器的 tmp 目录下: 1. 使用 `ssh-keygen -t rsa` 生成公钥。 2. 将公钥拷贝到服务器的 tmp 目录下。 执行 ...
【Git+Jenkins基本使用案例】的描述涉及到了在IT行业中常见的版本控制和持续集成/持续部署(CI/CD)工具的使用。本文主要讲解如何部署Git、GitLab和Subversion作为代码管理系统,并结合Jenkins实现自动化部署。 首先...
配置Git Server涉及安装Git软件、设置用户权限和仓库、以及配置SSH密钥等步骤。 **5. Git工作流** 在实际项目中,常见的Git工作流有Git Flow、GitHub Flow和GitLab Flow等。Git Flow强调预发布分支(如develop和...
### Git+Jenkins实现自动化构建与持续集成的关键知识点 #### 持续集成的基本概念 持续集成(Continuous Integration,简称CI)是一种软件开发实践,它要求团队成员经常性地(通常每天至少一次)将他们的工作集成到...
git+TortoiseGit客户端+使用手册+汉化,git+TortoiseGit客户端+使用手册+汉化,git+TortoiseGit客户端+使用手册+汉化
标题中的"git+git Torise+中文包"意味着我们不仅将讨论Git本身,还将关注两个与Git相关的工具:TortoiseGit和一个中文语言包。TortoiseGit是Git的一个图形用户界面(GUI)客户端,它为Windows用户提供了一种直观的...
`git init`用于创建一个新的Git仓库,`git add`将文件添加到暂存区,`git commit`保存工作区的更改,`git branch`用于管理分支,`git merge`将分支合并,而`git reset`则可以撤销提交,恢复到之前的版本。...
git+maven环境文档
git+TortoiseGit+TortoiseGitgit+TortoiseGit+TortoiseGitgit+TortoiseGit+TortoiseGitgit+TortoiseGit+TortoiseGitgit+TortoiseGit代码管理仓库图形化工具,方便好用git+TortoiseGit代码管理仓库图形化工具,方便...
typora+git+gitee实现个人笔记自动同步
git + repo 管理 需要时能用到