十分钟git-服务器搭建ssh登陆
2017-12-13 18:23
204 查看
QQ820688215微信公众号:1首先,创建一个操作系统用户
这样,用户
git,并为其建立一个
.ssh目录。
$sudoaddusergit $sugit $cd $mkdir.ssh&&chmod700.ssh $touch.ssh/authorized_keys&&chmod600.ssh/authorized_keys 2需要为系统用户的[code]authorized_keys文件添加一些开发者SSH公钥。假设我们已经获得了若干受信任的公钥,并将它们保存在临时文件中。与前文类似,这些公钥看起来是这样的:[/code]git
$cat/tmp/id_rsa.john.pub ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq dAv8JggJICUvax2T9va5gsg-keypair3将这些公钥加入系统用户
git的
.ssh目录下
authorized_keys文件的末尾:
$cat/tmp/id_rsa.john.pub>>~/.ssh/authorized_keys $cat/tmp/id_rsa.josie.pub>>~/.ssh/authorized_keys $cat/tmp/id_rsa.jessica.pub>>~/.ssh/authorized_keys 4现在我们来为开发者新建一个空仓库。可以借助带
--bare选项的
gitinit命令来做到这一点,该命令在初始化仓库时不会创建工作目录:
$cd/opt/git $mkdirproject.git $cdproject.git $gitinit--bare InitializedemptyGitrepositoryin/opt/git/project.git/
上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
$chown-Rgit:gitproject.git
其他开发者可以克隆此仓库,并推回各自的改动,步骤很简单:
$gitclonegit@gitserver:/opt/git/project.git[/code]需要注意的是,目前所有(获得授权的)开发者用户都能以系统用户
$cdproject
$vimREADME
$gitcommit-am'fixfortheREADMEfile'
$gitpushoriginmaster
git的身份登录服务器从而获得一个普通shell。如果你想对此加以限制,则需要修改
passwd文件中(
git用户所对应)的shell值。借助一个名为
git-shell的受限shell工具,你可以方便地将用户
git的活动限制在与Git相关的范围内。该工具随Git软件包一同提供。如果将
git-shell设置为用户
git的登录shell(loginshell),那么用户
git便不能获得此服务器的普通shell访问权限。若要使用
git-shell,需要用它替换掉bash或csh,使其成为系统用户的登录shell。为进行上述操作,首先你必须确保
git-shell已存在于
/etc/shells文件中:
$cat/etc/shells#seeif`git-shell`isalreadyinthere.Ifnot...现在你可以使用
$whichgit-shell#makesuregit-shellisinstalledonyoursystem.
$vim/etc/shells#andaddthepathtogit-shellfromlastcommand
chsh<username>命令修改任一系统用户的shell:
$chshgit#andenterthepathtogit-shell,usually:/usr/bin/git-shell将/usr/bin/git-shell复制回车
这样,用户
git就只能利用SSH连接对Git仓库进行推送和拉取操作,而不能登录机器并取得普通shell。如果试图登录,你会发现尝试被拒绝,像这样:
$sshgit@gitserver[/code]
fatal:Interactivegitshellisnotenabled.
hint:~/git-shell-commandsshouldexistandhavereadandexecuteaccess.
Connectiontogitserverclosed.
相关文章推荐
- 服务器上搭建使用SSH账户登录的Git仓库
- Windows下搭建基于ssh的git服务器
- mac os 利用ssh 搭建git server服务器详细教程,以及git基本用法(上)
- Windows下搭建基于ssh的git服务器
- SSH+Git Server on Windows - 在Windows下搭建Git服务器
- 搭建通过 ssh 访问的 Git 服务器
- mac os 利用ssh 搭建git server服务器详细教程,以及git基本用法
- Git 服务器(gitolite)ssh协议的搭建
- windows下搭建基于ssh的git服务器
- 搭建通过 ssh 访问的 Git 服务器
- mac os 利用ssh 搭建git server服务器详细教程,以及git基本用法(下)
- Windows下搭建基于ssh的git服务器
- Windows下搭建Git服务器,安装Copssh通过SSH访问,教程及总结
- SSH+Git Server on Windows - 在Windows下搭建Git服务器
- 搭建通过 ssh 访问的 Git 服务器
- Centos服务器ssh免密登录以及搭建私有git服务器
- 搭建通过 ssh 访问的 Git 服务器
- Git使用之搭建基于SSH的Git服务器(中篇) -- fatal protocol error bad line length character: micr
- debian下使用gitosis+gitweb搭建SSH认证的git服务器
- 【git-进阶】win7下搭建基于ssh的git服务器