ssh settings `allowopen =" localhost: 4000 "` не ограничивает перенаправление удаленных портов

У меня есть специальный пользователь на моем сервере, назовем его foo . Я использую его только для переадресации портов.

Пользователь .ssh/authorized_keys2 настроен для предотвращения входа в систему и открытия только определенного порта:

 no-pty,no-X11-forwarding,permitopen="localhost:4000",\ command="/bin/echo do-not-send-commands" ssh-rsa <long public key> bar@foobar 

Кроме того, foo имеет свою оболочку, установленную в /bin/false в /etc/passwd .

Я не могу войти в машину (это то, что я хочу):

 $ ssh foo@remote PTY allocation request failed on channel 0 Connection to remote closed. 

Но я могу открыть порты. Интересно, что я могу открыть порт 4000, но и другие непривилегированные порты:

 $ ssh -N -R 4001:localhost:22 foo@remote > # connection established 

На remote с помощью bar пользователя я могу подключиться:

 $ ssh -p4001 bar@localhost bar@localhost's password: Last login: Fri Sep 26 09:23:45 2014 from localhost.localdomain ... 

Почему пользователь может foo открыть порт 4001, когда я ограничил его permitopen="localhost:4000" ?

Ах, повторное чтение руководства показывает причину:

 permitopen="host:port" Limit local ``ssh -L'' port forwarding.... 

Также упоминается в этом U & L Q & A под заголовком: Как я могу ограничить пересылку удаленного порта ssh? ,