Phabricator 配置ssh访问代码仓库

根据官方文档需要准备3个用户

www-user, daemon-user, vcs-user

本次配置计划使用两个用户

其中www-user和daemon-user使用既有用apache

www-user,daemon-user

php-fpm本身配置的帐号是apache
这里daemon-user也直接使用apache用户。

./bin/config set phd.user apache

设置vcs-user

计划使用git作为用户名

./bin/config set diffusion.ssh-user git

创建用户并设置

useradd git
usermod -p NP git
usermod -s /bin/sh git

配置sudo
执行命令 visudo
增加如下内容

git ALL=(apache) SETENV: NOPASSWD: /usr/bin/git-http-backend,/usr/bin/git,/usr/bin/git-upload-pack,/usr/bin/git-receive-pack,/usr/bin/svnserve,/usr/bin/svn

注意,如果存在

Defaults requiretty

则需要将它注释掉(在行首增加 # )

配置SSH

1.使用端口2222

./bin/config set diffusion.ssh-port 2222

2.创建配置文件

cp ./resources/sshd/phabricator-ssh-hook.sh /usr/libexec/phabricator-ssh-hook.sh
chmod 755 /usr/libexec/phabricator-ssh-hook.sh
cp ./resources/sshd/sshd_config.phabricator.example /etc/ssh/sshd_config.phabricator

编辑配置文件
vi /etc/ssh/sshd_config.phabricator

AuthorizedKeysCommand /usr/libexec/phabricator-ssh-hook.sh
AuthorizedKeysCommandUser git
AllowUsers git

vi /usr/libexec/phabricator-ssh-hook.sh

# NOTE: Replace this with the username that you expect users to connect with.
VCSUSER="git"

# NOTE: Replace this with the path to your Phabricator directory.
ROOT="/opt/phabricator"

3.启动sshd

/usr/sbin/sshd -f /etc/ssh/sshd_config.phabricator
出现错误信息:
Could not load host key: /etc/ssh/ssh_host_dsa_key

解决方法:

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key

一路回车即可
然后再次启动

重启phd daemon

./bin/phd restart
如果有权限问题,设置目录权限

chown -R apache. /var/tmp/phd
chown -R apache. /var/repo

上一篇:SELinux权限导致的Phabricator无法通过http访问git仓库


下一篇:微服务架构从概念到实践