595
技術社區[雲棲]
Windows上使用Cygwin和Gitolite搭建Git服務器
原文:https://alone11.iteye.com/blog/1078297
安裝Cygwin
- 下載 setup.exe
- 打開setup.exe, 選擇Install from Internet
- 選擇安裝Cygwin到C:\cygwin
- 選擇存儲下載文件的目錄為C:\
- 選擇下載站點的鏡像
-
選擇安裝以下軟件包:
- Net | openssh (不要選成openssl)
- Devel | git
- Devel | git-completion
- Devel | git-gui
- Devel | git-svn (如果需要同時提交到svn)
- Devel | gitk
- Editors | vim
集成Cygwin和Windows Security
- 打開C:\cygwin\Cygwin.bat
-
$ bin/cyglsa-config
Warning: Registering the Cygwin LSA authentication package requires administrator privileges! You also have to reboot the machine to activate the change.
Are you sure you want to continue? (yes/no) - 選擇yes
- 重啟Windows
搭建SSH服務器
- 打開C:\cygwin\Cygwin.bat
-
$ ssh-host-config
*** Info: Generating /etc/ssh_host_key
*** Info: Generating /etc/ssh_host_rsa_key
*** Info: Generating /etc/ssh_host_dsa_key
*** Info: Generating /etc/ssh_host_ecdsa_key
*** Info: Creating default /etc/ssh_config file
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/README.privsep.
*** Query: Should privilege separation be used? (yes/no) -
選擇yes
*** Info: Note that creating a new user requires that the current account have
*** Info: Administrator privileges. Should this script attempt to create a
*** Query: new local account 'sshd'? (yes/no) -
選擇yes
*** Info: Updating /etc/sshd_config file
*** Info: Added ssh to C:\WINDOWS\system32\driversc\services
*** Warning: The following functions require administrator privileges!
*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) -
選擇yes
*** Query: Enter the value of CYGWIN for the daemon: []
-
輸入tty
*** Info: The sshd service has been installed under the LocalSystem
*** Info: account (also known as SYSTEM). To start the service now, call
*** Info: `net start sshd' or `cygrunsrv -S sshd'. Otherwise, it
*** Info: will start automatically after the next reboot.
*** Info: Host configuration finished. Have fun! - 配置結束,確認端口22可用。啟動服務:sc start sshd
允許SSH客戶端訪問
- 創建一個名為git的用戶,設置密碼,並確保密碼不會過期。
- 在Cygwin Bash中,執行命令: mkpasswd -l -u git >> /etc/passwd
驗證下SSH登錄
- 打開Cygwin Bash
-
$ ssh git@10.0.2.15
Administrator@china-fe1bdcde5 ~
$ ssh git@10.0.2.15
The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.
ECDSA key fingerprint is 5d:a6:81:98:43:fa:5a:f6:df:ba:18:b9:a0:76:87:f8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts.
git@10.0.2.15's password:
Could not chdir to home directory /home/git: No such file or directory
Copying skeleton files.
These files are for the users to personalise their cygwin experience.
They will never be overwritten nor automatically updated.
`./.bashrc' -> `/home/git//.bashrc'
`./.bash_profile' -> `/home/git//.bash_profile'
`./.inputrc' -> `/home/git//.inputrc'
`./.profile' -> `/home/git//.profile'
git@china-fe1bdcde5 ~
$ - 以git用戶登錄成功
創建SSH密鑰, 並使能夠通過SSH identity以git用戶登錄SSH服務器
- 打開Cygwin Bash
-
$ ssh-keygen -t rsa (所有輸入都為空,即使用默認配置,密碼為空)
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/Administrator/.ssh/id_rsa.
Your public key has been saved in /home/Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
6a:02:9f:42:99:7c:fe:52:e7:a9:fe:1b:15:1e:70:31 Administrator@china-fe1bdcde5
The key's randomart image is:
+--[ RSA 2048]----+
| . E. |
| o . |
| o |
| . o . o |
| * . S o |
| . = ..... |
| . =.oo.. |
| ..+ o. |
| o+oo. |
+-----------------+ -
$ ssh-copy-id git@10.0.2.15 (輸入git用戶密碼)
$ ssh-copy-id git@10.0.2.15
git@10.0.2.15's password:
Now try logging into the machine, with "ssh 'git@10.0.2.15'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting. -
驗證下,以git用戶登錄:ssh git@10.0.2.15
$ ssh git@10.0.2.15
Last login: Sat Jun 11 23:06:14 2011 from china-fe1bdcde5
git@china-fe1bdcde5 ~
$ - 不需要輸入密碼,即登錄成功
安裝Gitolite
- 打開Cygwin Bash
- $ cd /tmp
- $ git clone git://github.com/sitaramc/gitolite.git
- $ cd gitolite/src/
- $ ./gl-easy-install git 10.0.2.15 alec (可以單獨執行gl-easy-install查看各個參數的意義)
- 根據安裝向導一步步完成配置(其中需要配置alec的密碼,生成SSH密鑰)
-
當走到需要編輯配置文件(用vim編輯)的時候,在開頭插入:$ENV{PATH} = "/usr/local/bin:/bin:/usr/bin";,保存並退出(:wq) 如:
# configuration variables for gitolite
$ENV{PATH} = "/usr/local/bin:/bin:/usr/bin";
# PLEASE READ THE DOCUMENTATION BEFORE EDITING OR ASKING QUESTIONS
# ( https://github.com/sitaramc/gitolite/blob/pu/doc/gitolite.rc.mkd )
# ( or https://sitaramc.github.com/gitolite/doc/gitolite.rc.html )
# this file is in perl syntax. However, you do NOT need to know perl to edit
# it; it should be fairly self-explanatory and easy to maintain - 繼續完成安裝。當完成安裝之後,可以在當前用戶的home目錄下麵看到gitolite-admin目錄。
- $ cd ~/gitolite-admin
-
$ git status
Administrator@china-fe1bdcde5 ~/gitolite-admin
$ git status
# On branch master
nothing to commit (working directory clean)
到此整個git server已經安裝結束,可以參考Gitolite文檔來配置:添加user和repository
最後更新:2017-04-02 06:51:52