ubuntu server12.10 架设 gitolite 服务器

Gitolite在Ubuntu 12.04上的轻量级Git权限管理实战 Git权限控制是版本管理的核心能力,其本质是通过协议层(如SSH)与服务端逻辑协同实现细粒度访问控制。Gitolite作为纯SSH驱动的无状态Git服务器,不依赖Web框架或数据库,仅靠配置即代码(gitolite.conf)和密钥绑定即可完成RBAC建模,天然适配老旧系统兼容性约束。它将权限决策下沉至Git引用(refs)级别,支持分支/标签正则匹配、用户组策略与强制推送管控,在资源受限环境(如VPS)中实现零进程占用、秒级生效与完整审计追溯。本文聚焦Ubuntu 12.04这一典型遗留场景,详解Gito 阅读详情

吐槽:作者花了4天的业务时间才终于搭建好这个服务器,对于国外的一些开源东西实在不敢恭维。因为他自己写的配置文档都是有问题的(据作者观察)


声明:本文结合了gitolite源作者教程(完全按照的话保管不行)、一位兄弟的csdn blog教程(其中解释不清楚),以及本人实际操作和理解,并对本文作出了必须有的解释而出现的。本文写作日期为2013-03-23。网络上大多数的转载文章都为旧版本gitolite,安装方法与现在有很大区别(尽管核心架构一样,但你不会或者非常困难安装成功的)。

关于参考的2片文章传送门如下:

https://github.com/sitaramc/gitolite#readme

http://blog.youkuaiyun.com/fightingbull/article/details/8116971


环境:

作者电脑:msysgit(也称客户端)(192.168.1.101,这个不描述都可以的)

PC服务器:ubuntu server 12.10(serverip=192.168.1.201);sxxx作为服务器的管理员(非root,但可切换为root)


前置步骤:

1.作者电脑安装msysgit。作为客户端使用。(若为cygwin的话,得安装git。因为msysgit本来就是windows下的git shell)

2.服务器安装git:

sudo apt-get install git

3.服务器安装openssh:

$sudo apt-get install openssh-server

4.在服务器上创建专用账号gitadmin,并将此用户加入组gitolite,用来提供git身份验证:

$sudo addgroup gitolite

$sudo adduser --ingroup gitolite gitadmin


关键步骤:

1.ssh的公钥认证(在客户端操作,即msysgit shell上)

该操作是在客户端,对于SSH的公钥认证请自行google。由于不能用同一个公钥用作shell访问和gitolite访问,我们需要建两个公私钥对,一个给shell,一个给gitolite用。you cannot use the same key for both shell access and for gitoliteaccess(××注意×× 此处是重点中的重点,在此作者被卡3天)

1.1生成2个密钥对

//该命令会在用户主目录下创建 .ssh 目录,并在其中创建两个文件:id_rsa(私钥);id_rsa.pub(公钥)

$ssh-keygen -t rsa

//该命令创建一个指定名字为gitadmin的公私钥文件对

$ssh-keygen –f ~/.ssh/gitadmin

1.2上传2个密钥对到服务器上

//上传到服务器用作gitolite访问,见gitolite安装(理解为gitolite shell访问)

$scp ~/.ssh/gitadmin.pub sxxx@serverip:/tmp/

//用作shell访问(理解为ssh shell访问)

$ scp ~/.ssh/id_rsa.pub sxxx@serverip:/tmp/   

1.3设置无密码登录服务器

//在msysgit shell 以sxxx账号登陆服务器(这个登录输入密码的)

$ssh sxxx@serverip   

 //用公钥id_rsa.pub,加入到无密码-SSH登陆到gitamdin身份,用作shell访问(在这之前请确保你的.ssh/authorized_keys不存在,或空。或自己管理好吧,反正我是先删掉的)

sxxx@serverip  :~$sudo ssh-copy-id –i /tmp/id_rsa.pub gitadmin@serverip

1.4建立SSH主机别名,以方便登陆服务器访问gitolite用

回到客户端,即退出sxxx这个shell,回到本地msysgit shell中。

$vi ~/.ssh/config

其内容为:

host gitadmin

 user gitadmin

 hostname serverip

 port 22

 identityfile ~/.ssh/gitadmin

设置完之后,

//将用默认的id_rsa来认证,可以登陆ssh shell,但非gitolite shell哦

$ssh gitadmin@serverip

//将以服务器账号gitadmin身份登陆服务器,注意不能登陆shell哟,但可访问gitolite。(关于这一步暂时还不能用,等最后配置完gitolite的公钥才可以,提前介绍)

$ssh gitadmin 

2.服务器安装gitolite(这里的话参照gitolite原作者的官方教程。)

2.1在msysgit登录到服务器端的gitadmin身份:

ssh gitadmin@serverip(由于之前设置了ssh无密码登录,以及配置了config文件,所以这里就不用密码直接登录到shell 了)

//进入gitadmin的home目录(本人习惯在这个目录安装gitolite)

cd ~

//使用git 下载最新的源码

git clone git://github.com/sitaramc/gitolite

//将作为安装目录

mkdir -p $HOME/bin
//把下载的源码安装到刚建立的bin目录中

gitolite/install -to $HOME/bin
//××注意×× 这里就是配置你的gitolite管理这身份的公钥的步骤了

$HOME/bin/gitolite setup -pk /tmp/gitadmin.pub
2.2 下载gitolite-admin,开始管理你的服务器咯

回到客户端的mysygit shell(就是别登录到服务器端)

//使用gitadmin的专用公钥,克隆gitolite-admin 库(gitolite的原作者教程写的是git clone gitadmin@serverip:gitolite-admin,作者尝试无数方法皆失败)

$git clone gitadmin:gitolite-admin 

成功的话,将在本地(作者目录为c:/users/administrator/.ssh/)看到你下载的gitolite-admin库目录了

Gitolite细粒度Git权限控制实战指南 Git权限管理是企业代码协作的基础能力,其核心在于实现仓库级、分支级与命令级的精准访问控制。Gitolite作为轻量级SSH原生Git权限代理,不依赖数据库或Web服务,通过Perl脚本+声明式配置(gitolite.conf)实现实时策略生效,具备高稳定性与低资源占用特性。相比GitLab等全栈平台,它更适合老旧VPS、嵌入式环境及合规敏感场景;相较Gitosis,其三层过滤模型(SSH身份→仓库访问→引用控制)和VREF虚拟引用机制显著提升安全边界与审计能力。本文聚焦Ubuntu 12.04等经典Lin 阅读详情

相关推荐

从零部署Sourcegraph:构建企业级代码智能搜索引擎的完整指南

在大型软件项目中,代码搜索与导航是提升开发效率、保障代码质量和安全的核心基础设施。传统基于文本匹配的搜索方式难以应对跨仓库、多语言的复杂场景,无法实现精准的符号跳转和引用查找。通过解析代码语法树,现代代码智能搜索引擎实现了语义级别的代码理解,能够提供精准的搜索、导航和智能提示功能,其技术价值在于将碎片化的代码资产转化为统一、可搜索的知识图谱。这一技术尤其适用于中大型研发团队、微服务架构和开源项目维护等场景,能够显著提升代码复用、架构梳理和安全审计的效率。本文以Sourcegraph为例,深入探讨其部署方案选

weixin_34268169的博客 356

使用Gitolite搭建Git服务器

Gitolite是一款Perl语言开发的Git服务管理工具,通过公钥对用户进行认证,并能够通过配置文件对些操作进行基于分支和路径的精细控制。Gitolite采用的是SSH协议并且使用SSH公钥认证,因此无论是管理员还是普通用户,都需要对SSH有所了解。Gitolite的官网是:https://github.com/sitaramc/gitolite。下面就来细说使用Gitolite搭建Git服务器

探秘 525

Git LFS 实战指南:大文件管理与仓库瘦身全解析

Git 作为主流分布式版本控制系统,原生擅长文本变更追踪,但在二进制大文件(如模型权重、音视频、CAD/Blender 资源)管理上存在结构性瓶颈——历史膨胀、clone 缓慢、CI/CD 失败频发。Git LFS(Large File Storage)并非替代 Git,而是通过指针机制将大文件从 Git 对象库中解耦,仅在工作区按需加载,实现仓库瘦身与协作一致性。其核心基于 SHA256 内容寻址、smudge/clean 过滤器集成、本地+全局两级缓存及 HTTPS 302 带宽优化下载,天然兼容 Gi

weixin_33984032的博客 410

Git在服务器上的部署与使用

【概述】 Git是一个开源的分布式版本控制系统,记录了版本库从0开始所有的变化过程。 Git服务器可以采用四种方式 的协议:本地传输,SSH 协议,Git 协议和HTTP 协议。其中SSH协议是推荐的协议。而权限管理器有两种Gitosis和Gitolite。Gitosis已经于09年停止更新,不过仍然可以用。gitolite一直还在更新版本。Gitolite的权限控制更加强大和复杂一...

aamag404408的博客 339

CTF逆向实战:如何快速识别RC4、TEA和Base64的魔改变种?

本文针对CTF逆向比赛中常见的加密算法魔改问题,详细讲解了如何快速识别和破解RC4、TEA和Base64的变种。通过分析算法核心特征、常见魔改手法,并结合动态调试与脚本编写等实战技巧,帮助逆向分析人员有效应对算法混淆,提升解题效率。

agile9scrum的博客 784

Infinite-Canvas:一站式AI绘画工作流平台部署与实战指南

在 AI 绘画和内容创作领域,你是否经常遇到这样的困扰:灵感来了,却要在多个工具间来回切换——找素材、写提示词、调整参数、批量生成,整个过程繁琐且低效。创作一个系列作品时,管理不同版本的图片和提示词更是让人头疼。如果你渴望一个能整合所有流程,实现从素材管理、提示词工程到批量出图一站式完成的工作台,那么今天介绍的 Infinite-Canvas 正是为你量身打造的解决方案。 Infinite-Canvas 是一个开源的本地网页应用,它将 AI 绘画的完整工作流集成在一个界面中。无论你是想快速生成单张图片,还是

weixin_28707535的博客 339

单二进制Git服务器+对象存储:用Walgit构建轻量高可用代码托管方案

Git作为版本控制的核心工具,其服务器端的存储架构直接影响团队协作效率和基础设施成本。传统方案如GitLab组件繁多,Gitea虽轻量但仓库数据仍依赖本地磁盘,多实例共享时不得不引入复杂的分布式文件系统。对象存储以Key-Value模型提供近乎无限的容量和中心化访问能力,天然契合Git对象不可变的特性。将Git服务器与S3兼容对象存储结合,可实现存储与计算分离,让服务实例无状态化,从而简化水平扩展和容灾。Walgit正是这类架构的代表性实现——它以单一可执行文件提供服务,直接对接对象存储桶,无需NFS或共享

weixin_30603633的博客 316

网安保研避坑指南:中科院信工所各研究室真实体验与导师选择建议

本文为中科院信工所网络安全保研生提供深度指南,详细解析了信工所六个研究室的研究方向、真实氛围与导师选择策略。文章特别强调,选择导师是决定研究生体验的关键,并提供了针对各研究室的避坑建议与实战调研方法,帮助学生做出明智选择。

weixin_29210727的博客 1589

git 教程、常用命令

git 教程、常用命令

freeking101的博客 6630

Synopsys工具链实战:如何用VCS、DC、ICC和Calibre跑通你的第一个数字IC设计项目?

本文详细介绍了如何使用Synopsys工具链(VCS、Design Compiler、ICC和Calibre)完成数字IC设计项目,从RTL代码到GDSII版图的全流程。涵盖环境配置、RTL设计验证、逻辑综合、物理实现及签核验证等关键步骤,帮助工程师掌握高效的数字IC设计流程。

weixin_42525005的博客 197

哨兵2号遥感影像解析全流程:步骤、算法与AI应用详解

未来,多源数据融合与边缘计算技术的应用将进一步拓展遥感解析的边界。波段合成:选择10m分辨率波段(如B2、B3、B4、B8)进行Layer Stacking,生成多光谱影像。| 分类与识别 | Scikit-Learn、PyTorch | SVM、CNN、K-Means聚类 | 地块分类、目标检测 || 数据预处理 | SNAP、Sen2Cor | 大气校正、几何校正 | L2A产品生成、格式转换 || 波段融合 | ENVI、GDAL | Layer Stacking、重采样 | 多光谱影像合成 |

zhz5214的博客 2711

清除win下连接的linux的samba服务缓存

前言:在安装配置linux服务器samba服务之初,samba服务难免会经过多次修改配置/重启,

ichsonx的专栏 1万+

Day470&471.Netty概述&Netty高性能架构设计 -netty

Netty概述 一、原生 NIO 存在的问题 NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。 需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序。 开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。 JDK NIO

阿昌爱Java 1572

一步步使用GIT

前置:安装设置GIT 在windows上只用git有多种方法,但本人在此选择的是直接安装mysygit。 从官网上下载它,它是一个exe的可执行程序,直接运行。 1.安装git 默认选择“use git bash only”,即只在msysgit提供的shell环境中使用git,不修改环境变量。注意,如果选择最后一项,有可能会覆盖windows下的某些同名程

ichsonx的专栏 1万+

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

http://www.cierobot.com 4095

windows版vCenter STS证书替换步骤说明

windows版vCenter STS证书,手动更新步骤

技术是手段,服务才是目的。开源与协作是创新的活水,而核心技术的自主可控是立足之本。身处黄金时代,唯持续学习,方能不惧变化。从使用者到创造者,中国技术的未来,正待你们接过火炬,走得更远、更稳、更好。 1043

linux 安装配置DNS服务器

VM虚拟的环境CENTOS 5.6 IP:192.168.1.170 本地XP系统 IP:192.168.1.108 一.。安装DNS       LINUX安装DNS主要要安装2个程序:       yum install bind*

ichsonx的专栏 8876

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ActiveMQ 5.x 的安全配置

前言:activeMQ分为2个安全配置。一个是web控制台的安全配置;另外一个是对于队列/主题的访问安全配置。 1.控制台安全配置 ActiveMQ使用的是jetty服务器, 打开conf/jetty.xml文件,找到 将property name为au

ichsonx的专栏 5220

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

linux安装red5

前言:真的非常痛苦.上网找了一堆的Linux安装RED5的,可惜就没有一个适合用的,多数归结于是否安装IVY,或者缺失了2个.XML文件 一.环境 我使用的是CENTOS5.5 二.需要软件 2.1JDK1.6U27 2.2apache-ant--到http://ant.apache.org/ivy/download.cgi官网下载,我使用的是apache-a

ichsonx的专栏 3568

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

win7下,安装msysgit,连接github

一.下载msysgit 这是专门安装与windows下的供git操作的环境 github.com/ 二.配置msysgit 以连接github为例 2.1首先到github注册一个帐号 2.2配置用户信息 $ git config --global user.name "John Doe" $ git config --global user.email johndo

ichsonx的专栏 3370

SSH密钥登录设置

1. 生成公钥和密钥:    ssh-keygen -t rsa -b 1024    在生成的时候会要求输入  私钥 的名字和密码,一般情况下可以ENTER带过,会自动默认.    并且在该账户下的HOME目录生成.SSH目录存放    接着会生成  id_

ichsonx的专栏 2534

linux配置独立svn服务器

前言:独立SVN服务器不结合APACHE安装使用,连接独立SVN服务器也不是用HTTP协议。这是比较快捷的SVN服务器配置方法。一。下载工具    1.subversion-1.6.17.tar.gz     2.subversion-deps-1.6.17.tar.gz

ichsonx的专栏 2333

记一次公司mysql的安装,解压安装方式

首先,本人非专业管理服务器或者

ichsonx的专栏 919

一次samba架构的小记

前言:公司需求翻来覆去变了又变,这次需要给共享文档增加灵活的权限控制。在给samba

ichsonx的专栏 869

linux vsftpd 配置(1)

不是我说, 虽然说VSFTPD只有一个配置文件,但要搞什么虚拟用户什么的实在困难!原因是网上搜索的中文的"高人们"贴出的指导都必定有错误的!无奈我只好用最简单的设置了,第一篇就是本地用户的配置 !环境CENTOS5.5一般装好后都会有VSFTPD的了.root用户下1. 安装CENTOS5.5的时候,防火墙要开放给VSFTPD(我是全部开放的)2. 安装完CENTOS5.5后,运行 ntsysv , 这时候会出现一个图形界面,找到vsftpd选择启动它 ! 之后不论关机再开机都会启动,一劳永逸!3. 进入

ichsonx的专栏 720
上一篇: xen server 获取许可证的地址
下一篇: win7下配置GO语言环境 + eclipse 配置GO开发
ichsonx
博客等级 码龄19年 202粉丝 74原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值