]> Sergey Matveev's repositories - stargrave-blog.git/commit
Анонимный SSH+Git
authorSergey Matveev <stargrave@stargrave.org>
Tue, 11 Mar 2025 11:36:52 +0000 (14:36 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Tue, 11 Mar 2025 11:36:52 +0000 (14:36 +0300)
commit3136e07d90bf973abaf9fda3bad7e343a58c0be6
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent5ad8aff78c1d1d4c49ceeeb0ec51505e03764d88
Анонимный SSH+Git

https://gameoftrees.org/code.html
https://gameoftrees.org/gotsh.1.html
https://git-scm.com/docs/git-shell
Как-то я заметил, что в Game Of Trees (реализация Git от OpenBSD
разработчиков) весь исходный код доступен через ssh://-протокол,
анонимно, без регистрации (и SMS), никаких https://. Особо я никогда
не задавался вопросом можно ли "анонимный" SSH предоставить как либо?

Но в их документации на всё это есть намёки. Для "анонимного"
пользователя достаточно выставить в sshd_config (OpenSSH):

    Match User anongit
        PasswordAuthentication yes
        PermitEmptyPasswords yes
        DisableForwarding yes
        PermitTTY no

ну и убрать пароль у этого пользователя. В качестве shell-а выставить
git-shell, чтобы ограничить его возможности только работой с git-ом.
Создать git-shell-commands/no-interactive-login чтобы явно вообще
запретить интерактивную работу в git-shell.

Я не использую got, но в его gotd можно указать read-only права доступа.
А вот для обычного git-а git-shell-у ничего такого не указать. В
исходном коде git-shell можно закомментировать строчку в командой
разрешающей загрузку патчей, Но я пока решил задачу с read-only доступом
просто помещением anongit в группу git, для которой не даются права на
запись в репозитории.

И я убрал HTTP/HTTPS протокол для Git репозиториев у себя. Это не
связано с моим недавним (3342002daf11a729fc4591577a72b81d8cfda5df)
очередным постом про HTTPS, а просто так совпало по времени. Git и так
есть, OpenSSH и так есть: почему бы их и не использовать для случаев,
когда нужна криптографическая защита протокола? HTTPS излишен. Плюс
никакого PKI не надо, на который намекает TLS.