Я следовал этому руководству, чтобы настроить репозиторий git на экземпляре EC2. http://git-scm.com/book/ch4-4.html. В основном я добавляю новый git
user и включите мой открытый ключ в authorized_keys. После настройки git
пользователь, я просто инициализирую новое репо git init --bare
.
Однако я заметил, что могу легко клонировать его, не прибегая к моему закрытому ключу. Есть ли способ заставить его быть доступным только через SSH, чтобы соблюдались authorized_keys? Я предполагаю, что он использует git по умолчанию, то есть порт 9418, который, похоже, не поддерживает аутентификацию.
ОБНОВИТЬ
Хорошо, я пробовал это на новой коробке без ключей, и мне не удалось войти в систему или клонировать свое репо. Я понял, что ssh-add -D по какой-то причине у меня не работает. Я выбираю наиболее полезный ответ, спасибо.
Порт 9814 - это где git-daemon
запускается (например, клонировать, git clone git://git.example.com/repo
). Это предназначено для внутреннего git
репозиторий. Читать документация Больше подробностей.
У вас есть 2 других варианта настройки удаленного git
сервер:
git clone ssh://git.example.com/git/repo
git clone https://git.example.com/git/repo
SSH намного проще настроить. Вам просто нужно убедиться, что все участники имеют доступ к учетной записи SSH. Обычно это делается с помощью ключей SSH - каждый разработчик добавляет свой открытый ключ в git
Аккаунт SSH.
Просто помни:
ssh
, git
, http
или https
).ssh
https
git
и порт 80 для http
Похоже, вы полагаете, что виноват git-daemon. Вы подтвердили, что git-daemon действительно работает в системе? Проверьте список процессов, а также список открытых портов:
$ ps auxwww | grep git-daemon
$ sudo netstat -ptuna | grep 9814
Если git-daemon не запущен и порт 9814 не прослушивается, возможно, что-то еще не так - возможно, у нового пользователя git, которого вы добавили, не установлен пароль или в конфигурации SSH используется Kerberos, и у вас есть существующий действующий сервисный билет.
HTTP и SSH - это только два из полдюжины или около того протоколов, которые поддерживает git. Я считаю, что git всегда использует SSH только с URL-адресами в форме user @ host, поэтому я почти уверен, что это проблема аутентификации вашего пользователя git.
Когда вы клонируете репозиторий, следите за журналом авторизации в вашей системе (обычно /var/log/auth.log или / var / log / secure). Если вы видите SSH-вход для пользователя git во время операции клонирования, то он почти наверняка использует SSH, а не git-daemon.