Я хочу перенаправить порт 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
глобально.