我最近在Amazon EC2上设置了ubuntu-server。我想将其用作我的git服务器,因此可以在其中存储我的存储库。
因此,在哪里可以找到有关如何在ubuntu服务器上设置git的一些详细说明?所有这些SSH密钥以及类似的东西,多个用户等。
我最近在Amazon EC2上设置了ubuntu-server。我想将其用作我的git服务器,因此可以在其中存储我的存储库。
因此,在哪里可以找到有关如何在ubuntu服务器上设置git的一些详细说明?所有这些SSH密钥以及类似的东西,多个用户等。
Answers:
您可以按照aking1012的建议使用本教程来安装Git服务器,也可以只在EC2实例上安装SSH服务器(保护它并更改默认端口可能是明智的选择)。
Git可以是无服务器的,您可以初始化存储库,然后通过SSH从远程访问它。因此,在Ubuntu Server上执行以下操作即可:
GIT_DIR=project.git git init
cd project.git
git --bare update-server-info
cp hooks/post-update.sample hooks/post-update
最后在服务器上安装SSH:
sudo apt-get install ssh-server
现在,您应该配置SSH以保护它。
现在是时候使您的项目在线(开发计算机上已经拥有的数据):
git push ssh://<username>@<remote-git-hostname>/path/to/project.git master
现在您可以开始克隆了。您继续使用开发机器:
git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git
为了生成用于更安全身份验证的ssh密钥,您可以阅读有关SSH身份验证的本文。
openssh-server
吗?
ssh-server
是openssh-server的别名,至少在Ubuntu 10.04上是这样。
~/.ssh/config
来处理用户名/主机地址,键输入,端口等。
对于我所有的Git服务器设置,我都使用Gitolite,它允许“每分支”访问的安全粒度。如果在远程服务器上进行安装,则安装非常简单,就像运行交互式脚本一样简单。除了这种“易于设置”的特性外,它还具有Natty和Maverick的软件包
sudo apt-get install gitolite
这不会提供像Github或Gitweb这样的Web前端-但您可以轻松地在Gitolite之类的设备上进行配置和安装。
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way可以略做修改以适合您的目的...类似的教程http:// blog .agdunn.net /?p = 277。
一定要遵循官方文档:https : //help.ubuntu.com/community/Git(设置Git和项目管理部分)
最适合我的解决方案是设置WebDAV。
sudo a2enmod sudo dav_fs
sudo a2enmod dav
将新文件添加到/etc/apache2/sites-available
并命名,例如git.yourserver.com
。编辑它并添加以下行:
<VirtualHost *:80>
DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews
<Location />
DAV On
AuthType Basic
AuthName "git repos"
AuthUserFile /var/www/git.yourserver.net/password.dav
Require valid-user
</Location>
</VirtualHost>
/var/www/git.yourserver.com
和目录repos
sudo chown www-data /var/www/git.yourserver.com/repos
sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login
并输入用户名的密码 user_login
sudo chown root:www-data /var/www/git.yourserver.com/password.dav
sudo chmod 640 /var/www/git.yourserver.com/password.dav
现在,sudo a2ensite git.yourserver.com
和sudo service apache2 restart
。
/var/www/git.yourserver.com/repos
并创建目录,例如,myrepo.git
cd myrepo.git
git --bare init
git update-server-info
现在,从远程服务器注销并转到要在其中编辑文件的本地目录。
git clone http://user_login:user_password@git.yourserver.com/myrepo.git
并且您完成了。如果要将提交的更改发送到服务器:
git push origin master
您可以使用创建任意数量的用户sudo htpasswd
。请记住-c
,添加更多用户时不要使用switch,因为旧文件将被删除。
我也喜欢使用gitolite管理用户和安全性的方法。我有一个正在测试的用于EC2的Git + gitolite服务器AMI。随时尝试一下;文档可在此处获取:
使用这种方法,您可以在几分钟内使中央Git服务器运行私有存储库。如果您不熟悉gitolite和EC2,则有一条学习曲线。