在VirtualBox Manager(VM)搭建Git Repo

本文档介绍了如何在VirtualBox虚拟机中搭建Git仓库,包括客户端(Windows上的Git Bash)和服务器端(Ubuntu虚拟机)的配置,涉及到SSH密钥生成、防火墙规则设置、 authorized_keys文件创建等步骤。

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出错,没有深究。


嗯……好像差不多这样了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值