`
tomxu
  • 浏览: 15907 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

git + gitosis + ssh的几点注意

    博客分类:
  • git
阅读更多

自己之前使用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+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持续集成环境大家资料

    git+gerrit+jenkins+sonar持续集成环境大家资料,具体搭建步骤请参考本人博客。 里面还有一些插件,方便大家少走弯路

    jenkins+git+maven

    jenkins+git+maven搭建自动构建项目过程,其中部分简单安装省略

    git+git乌龟和使用说明博客

    在Git+Git乌龟的使用中,以下几个关键知识点是非常重要的: 1. **安装与配置**:首先,你需要在计算机上安装Git和Git乌龟。Git提供了命令行工具,而Git乌龟则作为图形化的补充。安装完成后,需要配置用户的姓名和...

    GIT+Gerrit+Jenkins基础操作

    GIT+Gerrit+Jenkins基础操作 

    [团队协作发 + 自动化部署 Git + Gitlab + Jenkins + K8S + Docker]之三:Git进阶编

    下面我将详细阐述在使用Git进行团队协作和自动化部署时需要掌握的知识点。 分支操作是Git的核心功能之一,它让多个开发者能够并行地开发软件的不同部分。在Git中,一个分支代表一个特定的开发线。主分支(通常名为...

    git+ssh ubuntu 安装配置笔记

    ### git+ssh Ubuntu 安装配置笔记 #### 一、服务器端配置 ##### 环境准备 在开始之前,请确保您的Ubuntu系统版本为12.04,并且已拥有root权限。 **步骤1:安装Git** 使用命令行工具安装Git及Git核心组件: ```...

    Jenkins+Git+Maven+Shell+Tomcat持续集成环境

    Jenkins+Git+Maven+Shell+Tomcat 持续集成环境 本文主要讲述如何使用 Jenkins、Git、Maven、Shell 和 Tomcat 搭建一个持续集成环境,以提高软件开发效率和质量。首先,Jenkins 是一个开源软件项目,旨在提供一个...

    jenkins+git+maven+tomcat

    Jenkins+Git+Maven+Tomcat 自动化集成环境搭建 本文将详细介绍如何使用 Jenkins、Git、Maven 和 Tomcat 实现自动化构建、部署 web 应用程序的集成环境。 环境安装 首先,我们需要安装以下环境: 1. 操作系统:...

    git+repo+gerrit代码服务器搭建

    2. 将用户 git 设置为 Gitosis 的管理员。 生成 Admin 端的公钥 生成 admin 端的公钥,并将其拷贝到服务器的 tmp 目录下: 1. 使用 `ssh-keygen -t rsa` 生成公钥。 2. 将公钥拷贝到服务器的 tmp 目录下。 执行 ...

    Git+Jenkins 基本使用案例

    【Git+Jenkins基本使用案例】的描述涉及到了在IT行业中常见的版本控制和持续集成/持续部署(CI/CD)工具的使用。本文主要讲解如何部署Git、GitLab和Subversion作为代码管理系统,并结合Jenkins实现自动化部署。 首先...

    完全学会GIT+GITHUB+GIT+SERVER的24堂课

    配置Git Server涉及安装Git软件、设置用户权限和仓库、以及配置SSH密钥等步骤。 **5. Git工作流** 在实际项目中,常见的Git工作流有Git Flow、GitHub Flow和GitLab Flow等。Git Flow强调预发布分支(如develop和...

    Git+Jenkins实现自动化构建与持续集成(git+jenkins+intelij)

    ### Git+Jenkins实现自动化构建与持续集成的关键知识点 #### 持续集成的基本概念 持续集成(Continuous Integration,简称CI)是一种软件开发实践,它要求团队成员经常性地(通常每天至少一次)将他们的工作集成到...

    git+TortoiseGit客户端+使用手册+汉化

    git+TortoiseGit客户端+使用手册+汉化,git+TortoiseGit客户端+使用手册+汉化,git+TortoiseGit客户端+使用手册+汉化

    git+git Torise+中文包

    标题中的"git+git Torise+中文包"意味着我们不仅将讨论Git本身,还将关注两个与Git相关的工具:TortoiseGit和一个中文语言包。TortoiseGit是Git的一个图形用户界面(GUI)客户端,它为Windows用户提供了一种直观的...

    git(git+管理工具+密钥)

    `git init`用于创建一个新的Git仓库,`git add`将文件添加到暂存区,`git commit`保存工作区的更改,`git branch`用于管理分支,`git merge`将分支合并,而`git reset`则可以撤销提交,恢复到之前的版本。...

    git+maven环境文档

    git+maven环境文档

    git+TortoiseGit

    git+TortoiseGit+TortoiseGitgit+TortoiseGit+TortoiseGitgit+TortoiseGit+TortoiseGitgit+TortoiseGit+TortoiseGitgit+TortoiseGit代码管理仓库图形化工具,方便好用git+TortoiseGit代码管理仓库图形化工具,方便...

    typora+git+gitee实现个人笔记自动同步

    typora+git+gitee实现个人笔记自动同步

    git + repo 下载

    git + repo 管理 需要时能用到

Global site tag (gtag.js) - Google Analytics