1 废话
纯粹个人鼓捣结果,记录以供参考。
2 操作系统环境
由于平时不在Linux上开发,只能在一部稍微闲置的Windows里安装Ubuntu虚拟机来搭建repo。
2.1 客户端
在Windows上用Git Bash,此处先称为WC。
1. 在WC防火墙Outbound rules里添加允许端口22的TCP连接。
2. 在Git Bash里运行:
ssh-keygen -t rsa
第一个是要输入保存地址的,按回车选择默认就可以了,会保存在C:\Users\[your_username]\.ssh\文件夹里,私钥默认是id_rsa,公钥默认是id_rsa.pub。生成密钥其实会增加“折腾量”,但是以后ssh登陆不用每次输入密码了。
如果已存在相同名字文件,会提问是否覆盖已存在文件。
第二个是要输入密码(passphrase),笔者没有输入,直接两次回车跳过,然后就生成了。
接着运行:
eval $(ssh-agent) # 运行下一句提示Could not open a connection to your authentication agent.的时候用
ssh-add ~/.ssh/id_ras
作用是让ssh-agent管理私钥。如果不用ssh-agent,可以手动载入私钥:
ssh -i [path_of_id_rsa] [user]@[server]
3. 新建一个authorized_keys文件,将id_rsa.pub的内容复制进去。(其实这步也许不需要)
4. 新建一个config文件,输入内容:
Host [alias_of_host_ip]
HostName [host_ip]
User [username_of_host]
IdentityFile ~/.ssh/id_rsa # (2018.04.19更新)最后这里是载入私钥才能用
这样可以为服务器端添加别名(alias),不用每次输入IP地址。至于是否会遇到动态IP,还没有去研究。
2.2 服务器端
2.2.1 主机
主机Windows 7,此处先称为WS。在WS防火墙Inbound rules里添加允许端口22的TCP连接。
2.2.2 虚拟机
镜像用的是Ubuntu 14.04 64 bit。VM里的虚拟机我命名为ubuntu,安装过程请上网查,笔者参考的是这个。安装过程中设置用户为git,机器名为git-server,此处先称为US。
1. 在VM里,ubuntu - Settings - System处:
(1) Motherboard - Base Memory,笔者用了4096 MB,请酌情调整。
(2) Processor - Processor(s),用2个CPU。
2. 在VM里,ubuntu - Settings - Network处:
(1) Adapter 1的Attached to选择Bridged Adapter.
(2) Adapter 2的Attached to选择Host-only Adapter。其实设置Adapter 1就可以用了,但是后来考虑到是否应该设置静态IP,上网查了一下,要设置Host-only Adapter。但是只设置Host-only Adapter并不能联网,所以两个都设置了。但设置后笔者没有再设置静态IP。(先用着吧……[汗])
(3) 2019.04.19更新:连公司内网的时候Bridged Adapter不起作用,所以Attached to选择NAT,同时要在Advanced - Port Forwarding增加一条规则,两个Port都填22就可以了,IP地址不是必填项。然后直接ssh到WS的IP地址就可以了。
3. 在US的terminal里为防火墙添加ssh和端口22的规则:
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 22
sudo ufw allow 22/tcp
可查看当前状态:
sudo ufw status verbose
4. 在~/.ssh/文件夹里,新建authorized_keys文件,将WC生成的id_rsa.pub的内容复制进去,再运行:
sudo chmod 600 ~/.ssh/authorized_keys
5. 安装并开启ssh服务:
sudo apt-get install openssh-server
sudo service ssh start
3 创建Git仓库
找个地方建一个repo,例如:
mkdir -p ~/Documents/git_repo/Demo.git
cd ~/Documents/git_repo/Demo.git
git init --bare
初始化必须带有[--bare]选项,不带的情况下,可以在WC成功git clone,但是git push出错,没有深究。
嗯……好像差不多这样了。
本文档介绍了如何在VirtualBox虚拟机中搭建Git仓库,包括客户端(Windows上的Git Bash)和服务器端(Ubuntu虚拟机)的配置,涉及到SSH密钥生成、防火墙规则设置、 authorized_keys文件创建等步骤。
搭建Git Repo&spm=1001.2101.3001.5002&articleId=79986230&d=1&t=3&u=8c75e127cf3f4a1aac30364e9f7bce57)
377

被折叠的 条评论
为什么被折叠?



