From: Sergey Matveev Date: Tue, 11 Mar 2025 11:36:52 +0000 (+0300) Subject: Анонимный SSH+Git X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=3136e07d90bf973abaf9fda3bad7e343a58c0be6;p=stargrave-blog.git Анонимный 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. ---