项目开发过程中,利用git管理项目是个不错的选择,但是每次登陆密码比较麻烦。
现在利用ssh实现无密码使用,是个很方便的选择。我在配置ssh中碰到了始终没办法去除密码。网上的文章纷杂错综。我也进行了诸多尝试,最后总结如下几部,希望对后来者有个作用。
gitosis等管理git服务器有点小复杂,一般小规模开发没必要用,仅仅依靠Linux的SSH就可以管理了。步骤如下
1 添加用户,并准备公钥私钥
1)添加用户git,密码也是git
adduser danny
passwd danny
adduser git
passwd git
root用产生公钥在/root/.ssh/id_rsa下面
ssh-keygen -t rsa
然后执行 进入到/root/.ssh目录下 执行 cp id_rsa.pub authorized_keys
保存退出:wq!
执行ssh localhost。此时应该无密码登陆本机。
进入 danny 和git 账号,同样用上述方式执行。确定全部能无密码登陆本机。
将root 和danny的 id_rsa.pub里的信息添加到git 的 authorized_keys末尾
2) 修改权限
chown git authorized_keys
mkdir /home/git/repos
chown -R git /home/git/repos
2 建立测试项目
切换到git用户,进入git主目录,建立testproject.git
su git
cd ~
mkdir /home/git/repos/testproject.git
cd /home/git/repos/testproject.git
初始化git库
git init
设置用户
git config user.email "git@www.linuxidc.com"
git config user.name "git"
在该目录下建立一个test文件,并提交。
vi test
git add test
git add --all 添加所有待添加文件
git commit -a -m "add test"
创建分支,默认的master分支,不允许其他用户提交
git branch develop
查看分支
git branch
切换分支
git checkout develop
3 克隆测试项目
切换到danny用户,进入danny的主目录
su danny
cd ~
git clone git@localhost:/home/git/testproject.git
cd testproject.git
设置用户
git config user.email "danny@xxx.com"
git config user.name "danny"
在该目录下建立一个test文件,并提交。注意此时只是提交到danny目录下的库,并没有提交到git用户目录下的库。
vi test
git add test2
git commit -a -m "add test2"
4 在windows下,使用TortoiseGit连接
在管理员windows机器上通过mysygit的bash命令生成公钥,私钥;在 C:\Documents and Settings\Administrator\.ssh 目录下
ssh-keygen -t rsa
使用 D:\Program Files\TortoiseGit\bin\puttygen.exe,存为putty专用格式
"Load" Administrator\.ssh 目录下的id_rsa
"Save private kay" putty.ppk
同时将公钥中的那行复制到git/.ssh/authorized_keys中
使用TortoiseGit clone一个项目
ssh://git@172.20.x.x/home/git/testproject.git
勾上Load Putty key "C:\Documents and Settings\Administrator\.ssh\putty.ppk"
日常操作时
git pull,git pull develop
解决有没有更新冲突
git push,git push develop