Seu problema é que os pacotes TCP enviados pelo seu servidor usam outro caminho além dos pacotes TCP que você envia a ele, e seu pfsense então acha que a conexão não está estabelecida e a remove de sua tabela de conexões estabelecidas, rejeitando qualquer entrada. pacotes.
Os pacotes TCP que vão da sua máquina na rede do usuário para o seu servidor são enviados para o roteador pfsense, que os encaminha para o seu servidor ssh. Como o seu servidor ssh possui uma interface na sua rede de usuários, os pacotes de retorno são enviados diretamente para sua máquina através de sua interface na rede do usuário. Conseqüentemente, o pfsense só vê os pacotes indo de sua máquina para o servidor e, como os primeiros quadros TCP SYN não foram reconhecidos, ele decide que a conexão está morta após algum tempo e descarta os pacotes subsequentes.
Uma solução rápida no pfsense seria SNAT os pacotes ssh indo da rede do usuário para a rede administrativa. Assim, o servidor ssh usaria o pfsense para seu caminho de retorno. O servidor ssh então seria incapaz de saber o endereço de origem real, é claro.
Uma abordagem melhor é usar o roteamento baseado na origem. Veja esta questão por exemplo.