В OpenSSH можно объявить подсистему в файле конфигурации (/etc/ssh/sshd_config) или заставить команду, такую как svnserve выполнить, включив ее в строку authorized_keys для определенного ключа, например так:
command="svnserve -t --tunnel-user=alice" ssh-dss AAAA...
command="svnserve -t --tunnel-user=bob" ssh-dss AAAA...
тем самым позволяя одному и тому же системному пользователю повторно использоваться для разных "идентификаторов" в контексте Subversion (svnserve).
Как мне написать такой сервис, как svnserve , позволяющий указать использование туннеля и как именно данные передаются в этих случаях? В частности, как экземпляр svnserve "знает", каким образом выводить данные или читать ввод? Все ли это происходит через stdout и stdin в таком случае, и если так, будет ли способ отличить stderr ?
Я полагаю, что подсистема и command= используют один и тот же механизм, но, пожалуйста, исправьте меня, если я ошибаюсь.
(Я оставил no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty для краткости, но я знаю о них и об их использовании в сценарии.)
