Думается мне, что без костылей это не решается…
Так что вариант у меня только один — писать скрипт:
1 — генерим случайное число
2 — по ssh лезем и netstat (sockstat в случае FreeBSD) проверяем свободен ли порт
3 — анализируем результат, если порт свободен, то запоминаем
4 — проводим аналогичную процедуру (п. 1-3) для локального порта
5 — выполняем ssh подключение с port forwarding
6 — сообщаем какие порты были задействованы