Назад | Перейти на главную страницу

перенаправление портов ssh на основе пользователя

Я хочу перенаправить порт 22 (ssh) на порт 7999 (где работает битбакет) только для пользователя git, и используйте обычный sshd для всех остальных пользователей. Я посмотрел на HAProxy для пересылки ssh, но это не позволяет мне различать пользователей.

Как мне настроить это на сервер? Я не хочу, чтобы каждый отдельный клиент настраивал ProxyCommand в их .ssh/config.

Вы можете попробовать что-нибудь в этом роде (не проверено):

В /etc/ssh/sshd_config (или подобное), добавьте что-то вроде этого:

Match user git 
    ForceCommand ssh git@localhost -p 7999 

Не забудьте перезагрузить / перезапустить sshd. Это должно «туннелировать» соединение с Bitbucket через порт 7999. В качестве альтернативы netcat также может работать (ForceCommand nc localhost 7999).

Как я уже сказал, это не проверено, но у меня работает полное перенаправление ssh-соединения на другой хост.

Я не думаю, что вы можете это сделать, потому что пользователь не известен, когда соединение изначально создается, а именно тогда вам потребуется перенаправление.

Знаете ли вы, что все, что может входить в ~/.ssh/config можно поместить в /etc/ssh/ssh_config файл и применяется глобально? Возможно, вы сможете использовать это для настройки ProxyCommand глобально.