window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫

說明:以前研發一直是通過輸入密碼來提交代碼到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 "[email protected]"

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
[email protected]
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 identification has been saved in /c/Users/Administrator/.ssh/test1.
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.. .        |
|[email protected]= 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文件

window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
到此祕鑰生成完成

2.3安裝TortoiseGit

a、安裝過程:

安裝參考文檔:
官網下載地址:https://tortoisegit.org/download/
安裝參考資料:http://www.jb51.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 <file>..." 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 <[email protected]>
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 [email protected]

If the identity used for this commit is wrong, you can fix it with:

    git commit --amend --author='Your Name <[email protected]>'

 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和提交代碼

window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
提交代碼到遠程版本庫:

window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫

window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫
window10系統電腦上安裝putty實現免祕鑰提交代碼到git遠程版本庫

到此處所有的配製和演示全部完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章