Eu fazia batota e colocava um par de netcat e tee no pipeline:
nc -k -l -p $localport -c "tee file.out | nc 127.0.0.1 $portforwardport"
em que $localport é uma porta arbitrária para apontar seu processo de java em e $portforwardport é seu número de porta de encaminhamento de porta ssh. O -k faz com que o netcat de escuta fique em escuta, em vez de sair após a primeira vez que um cliente se desconecta. A saída terminará em file.out no seu host local.