Настройка SSH для Phabricator

В этой статье я приведу пример настройки SSH для Phabricator.
Если на сервере уже установлен SSH сервер, то его трогать не будем, разве что можно изменить стандартный порт 22, например на 2222, чтобы запустить второй SSH сервер на стандартном порту и не указывать порт в ссылках репозитория.

На момент написания статьи я использовал операционную систему Ubuntu 18.04.
Создадим в системе пользователя, например git или hg:

adduser --quiet --no-create-home --disabled-password --gecos "" git

Скопируем скрипт и укажем в нем пользователя:

cp /home/phd/phabricator/resources/sshd/phabricator-ssh-hook.sh /usr/lib/phabricator-ssh-hook.sh
chown root /usr/lib/phabricator-ssh-hook.sh
chmod 755 /usr/lib/phabricator-ssh-hook.sh
nano /usr/lib/phabricator-ssh-hook.sh

Скопируем шаблон конфигурации SSH, укажем в нем AuthorizedKeysCommand, AuthorizedKeysCommandUser, и AllowUsers:

cp /home/phd/phabricator/resources/sshd/sshd_config.phabricator.example /etc/ssh/sshd_config.phabricator
nano /etc/ssh/sshd_config.phabricator

Запустим SSH сервер (чтобы он автоматически запускался при старте системы, добавим в /etc/rc.local или создадим скрипт автозапуска):

/usr/sbin/sshd -f /etc/ssh/sshd_config.phabricator

Проверим запущен ли он:

netstat -na | grep :22
echo [] | ssh git@test.ixnfo.com conduit conduit.ping

Добавим в файл /etc/sudoers:

git ALL=(phd) SETENV: NOPASSWD: /usr/bin/git-upload-pack, /usr/bin/git-receive-pack, /usr/bin/hg, /usr/bin/svnserve

Ключи добавляются в профилях пользователей, убедится что они добавлены можно так:

/usr/lib/phabricator-ssh-hook.sh git

При необходимости укажем параметры:

cd /home/phd/phabricator/
./bin/config set diffusion.ssh-host ...
./bin/config set diffusion.ssh-port 22
./bin/config set diffusion.ssh-user git

Также рекомендую установить Fail2Ban для блокировки неудачных попыток подключения.

Смотрите также мои статьи:

Оставьте комментарий

Добавить комментарий