设为首页 收藏本站
查看: 1347|回复: 0

[经验分享] window10系统电脑上安装putty实现免秘钥提交代码到git远程版本库

[复制链接]

尚未签到

发表于 2018-9-16 11:03:23 | 显示全部楼层 |阅读模式
  说明:以前研发一直是通过输入密码来提交代码到git远程版本库,每次提交代码都得输入服务器的密码,太繁琐,于是研究了下在windows端进行免秘钥来提交代码。

一、pc端安装客户端软件环境说明
  首先要在windows电脑端安装git-bash,TortoiseGit-1.8.8.0-64bit.msi,以及putty这个3个客户端软件。
  这个3个软件的作用说明:
  1.1git-bash客户端软件
  其实就是git在windows端的命令行操作工具,和在linux端git的事一样的功能,都是要通过命令来clone,commit,update代码的。同时git-bash客户端在此处的功能主要是通过登录git-bash来生成windows电脑的公钥和私钥。C:\Users\j.ssh\user001.pub,C:\Users\j.ssh\user001.rsa。然后将生成的windows公钥文件user001.pub上传到git的账户管理机manage上(此机器为linux机器centos6.8的系统)的/root/gitolite-admin/keydir/这个目录下,然后通过git将此user001.pub公钥提交到git的版本库里面。
  1.2.putty客户端软件
  通过putty加载git-bash在windows端的生成的私钥id.rsa文件再来生成id.rsa.ppk文件。这样每次提交代码时,直接加载这个windows端私钥的ppk文件,可以不用输入密码直接提交代码到远程版本库
  1.3TortoiseGit-1.8.8.0-64bit.msi客户端软件
  TortoiseGit软件其实就是git在windows端的桌面版的可视化操作工具,支持汉化版,可以通过TortoiseGit进行各种提交代码。当然通过TortoiseGit在提交代码时可以选择加载putty生成的ppk后缀的私钥文件,来实现免输入密码来提交代码,极大的提高了工作效率

二、客户端软件安装配置说明

2.1git-bash客户端软件安装配置使用

a、安装过程参考此文档:
  官网:https://git-for-windows.github.io/
  https://blog.csdn.net/zzfenglin/article/details/53147604

b、配置使用:
  配置在windows端登录git-bash进行配置环境
  

Administrator@XB-20160409ISPJ MINGW64 ~/Desktop  
$ git config --global user.name "wujianwei"
  

  
Administrator@XB-20160409ISPJ MINGW64 ~/Desktop
  
$ git config --global user.email "3056977536@qq.com"
  

  
Administrator@XB-20160409ISPJ MINGW64 ~/Desktop
  
$ git config --global color.ui true
  

  查看配置列表:
  

Administrator@XB-20160409ISPJ MINGW64 ~/Desktop  
$ git config --list
  
core.symlinks=false
  
core.autocrlf=true
  
core.fscache=true
  
color.diff=auto
  
color.status=auto
  
color.branch=auto
  
color.interactive=true
  
help.format=html
  
rebase.autosquash=true
  
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
  
diff.astextplain.textconv=astextplain
  
filter.lfs.clean=git-lfs clean -- %f
  
filter.lfs.smudge=git-lfs smudge -- %f
  
filter.lfs.required=true
  
filter.lfs.process=git-lfs filter-process
  
credential.helper=manager
  
user.name=wujianwei
  
user.email=3056977536@qq.com
  
color.ui=true
  

  生成密钥文件:
  

ssh-keygen.exe -t rsa -f /c/Users/Administrator/.ssh/user001  
Generating public/private rsa key pair.
  
Created directory '/c/Users/Administrator/.ssh'.
  
Enter passphrase (empty for no passphrase):
  
Enter same passphrase again:

  
Your>  
Your public key has been saved in /c/Users/Administrator/.ssh/test1.pub.
  
The key fingerprint is:
  
SHA256:EWr9I74XSCIgrJK4I4wYIE3H4hZLHa+UpUrkwsfLkNk Administrator@XB-20160409ISPJ
  
The key's randomart image is:
  
+---[RSA 2048]----+
  
|.oooo.. .        |
  
|=+@.o= o .       |
  
|*XoE+ + o        |
  
|*oBooo. .o       |
  
|=+.o.. oS.o      |
  
|*.     .....     |
  
|..      .  .     |
  
|         ..      |
  
|        ..       |
  
+----[SHA256]-----+
  
Administrator@XB-20160409ISPJ MINGW64 ~/Desktop
  
$ cd  /c/Users/Administrator/.ssh
  
Administrator@XB-20160409ISPJ MINGW64 ~/.ssh
  
$ ls
  
user001  user001.pub
  

  拷贝windows端公钥user001.pub到git账户管理机器10.0.0.56上的目录
  提示报错:
  

[root@manage ~]#  git clone git-server:gitolite-admin  
Initialized empty Git repository in /root/gitolite-admin/.git/
  
Bad owner or permissions on /root/.ssh/config
  
fatal: The remote end hung up unexpectedly
  

  权限不对,一下给600权限解决问题
  

[root@manage ~]# ll /root/.ssh/config  
-rw-rw-r-- 1 root root 99 Mar 29 11:28 /root/.ssh/config
  
[root@manage ~]# chmod 600 /root/.ssh/config
  
[root@manage ~]#  git clone git-server:gitolite-admin
  
Initialized empty Git repository in /root/gitolite-admin/.git/
  
Warning: Permanently added '221.195.1.233' (RSA) to the list of known hosts.
  
remote: Counting objects: 6, done.
  
remote: Compressing objects: 100% (4/4), done.
  
remote: Total 6 (delta 0), reused 0 (delta 0)
  
Receiving objects: 100% (6/6), done.
  
[root@manage ~]# ll gitolite-admin/
  
total 8
  
drwxrwxr-x 2 root root 4096 Mar 29 12:00 conf
  
drwxrwxr-x 2 root root 4096 Mar 29 12:00 keydir
  

  [root@manage ~]# cd gitolite-admin/keydir/
  [root@manage keydir]# rz
  git-admin.pub user001.pub(user001.pubwindows上git-bash工具生成的公钥文件)
  [root@manage  gitolite-admin]# git add keydir/user001.pub
  [root@manage  gitolite-admin]# git push keydir/user001.pub
  此时会在git-server版本仓库机器上的的秘钥文件中增加以下内容
  [git@git-server ~]$ cat .ssh/authorized_keys
  

# gitolite start  
command="/home/git/bin/gitolite-shell user001",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAdgj35zaC1yc2EAAAADAQABAAABAQC7GXe0BlOVPq6/WoC/UKhz5i2wBKWkvdZKWiidvo51LmYnFSAKMslKHFXLK9mLqVe0f9ES/hNGkHwroCxlMK1GRHff2t/q5VWAuvoKPskB7s7ISoDt4giANdd/GSDLh7Ih1kyGW6qR47z/M+RoMaDoKrUpduW63L1WuNv6mwPcvzCBYMkK2EDnXnoYUtd/pRm1cLzU6CIoPO8UEwnxbQ/+y6NDoOSChsVjpEIq0u/+rNO/nbUHdKjRMpGpFgeIsdk4ynNYo4/a03LE1wEweet2SDWWWWFEwSwa/t/DGzp39z0Y8/w0AvhRs4HxxPwU4E9Lg331xrlBxv5sXYNO5j j@DESKTOP-MKKM55A
  
# gitolite end
  

  windows端git-bash生成的公钥文件,在服务器上配制到此完成

2.2、putty软件的安装配制使用

a.官网下载地址:
  https://www.chiark.greenend.org.uk/~sgtatham/putty/

b.使用介绍:
  通过putty加载windows端的私钥user001.rsa文件来生成user001.rsa.ppk文件
DSC0000.jpg

DSC0001.jpg

DSC0002.jpg

DSC0003.jpg

DSC0004.jpg

DSC0005.jpg

  到此秘钥生成完成

2.3安装TortoiseGit

a、安装过程:
  安装参考文档:
  官网下载地址:https://tortoisegit.org/download/
  安装参考资料:http://www.iyunv.net/article/55440.htm
  git客户端软件TortoiseGit-1.8.8.0-64bit.msi 下载安装
  官网下载地址:https://tortoisegit.org/download/
  汉化本语言包下载:
  http://jingyan.baidu.com/article/a501d80c292d91ec630f5e3e.html

b、配制使用介绍
  首先在git账户管理机器manage上配制新的版本库test003,并且上传user001.pub,然后提交到git远程仓库
  

[root@manage conf]# tail -2 /root/gitolite-admin/conf/gitolite.conf  
repo test003
  RW+     =   user001 git-admin
  
[root@manage conf]# cd /root/gitolite-admin/
  
[root@manage gitolite-admin]# ls
  
conf  keydir
  
[root@manage gitolite-admin]# cd keydir/
  
[root@manage keydir]# rz 上传windows上生成的公钥user001.pub
  
[root@manage keydir]# ls
  
git-admin.pub  user001.pub
  

  
[root@manag gitolite-admin]#git add  ./conf/gitolite.conf
  
[root@manag gitolite-admin]#git add ./keydir/user001.pub
  
[root@manage gitolite-admin]# git status
  

#On branch master  
#Changes to be committed:
  
#(use "git reset HEAD ..." to unstage)
  
#
  
#   modified:   conf/gitolite.conf
  
#   modified:   conf/keydir
  
#
  
[root@ gitolite-admin]# git commit -m "the test user001"
  
[master d349781] the test user001
  Committer: root
  
Your name and email address were configured automatically based
  
on your username and hostname. Please check that they are accurate.
  
You can suppress this message by setting them explicitly:
  

  git config --global user.name "Your Name"
  git config --global user.email you@example.com
  


  
If the>  

  git commit --amend --author='Your Name '
  

  1 files changed, 2 insertions(+), 0 deletions(-)
  
[root@ gitolite-admin]# git push
  
Counting objects: 7, done.
  
Delta compression using up to 16 threads.
  
Compressing objects: 100% (3/3), done.
  
Writing objects: 100% (4/4), 360 bytes, done.
  
Total 4 (delta 1), reused 0 (delta 0)
  
remote: Initialized empty Git repository in /home/zydrgit/repositories/test003.git/
  
To git-server:gitolite-admin
  65e5385..d349781  master -> master
  

  [root@ gitolite-admin]#
  在远程版本库上新生成test003.git版本库
  

[git@git-server repositories]$ ls  
gitolite-admin.git  test001.git  test003.git  testing.git
  

c、在windows上使用TortoiseGit来clone和提交代码
DSC0006.jpg

DSC0007.jpg

  提交代码到远程版本库:
DSC0008.jpg

DSC0009.jpg

DSC00010.jpg

  到此处所有的配制和演示全部完成



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-584465-1-1.html 上篇帖子: linux服务器上搭建gitolite实现对git server的版本库的权限控制 下篇帖子: win上通过ssh获取git资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表