Você deve escolher a opção 2:
creating war and deploy on standalone tomcat (with ssh tunnel outside application as linux service)
Você deseja que o seu túnel SSH seja gerenciado pelo SO subjacente, não pelo seu aplicativo. Desta forma, ele pode ser delegado por um SysAdmin (de preferência usando uma ferramenta de gerenciamento de configuração).
Um aplicativo desenvolvido não deve se preocupar com o gerenciamento de tarefas do sistema, como a persistência de um túnel para o back-end.
Isso se alinha ao método "12 Factor App" de tratamento de 'serviços de apoio':
The code for a twelve-factor app makes no distinction between local and third party services. To the app, both are attached resources, accessed via a URL or other locator/credentials stored in the config. A deploy of the twelve-factor app should be able to swap out a local MySQL database with one managed by a third party (such as Amazon RDS) without any changes to the app’s code.
Então, se a sua base de código tem algo relacionado à criação de um túnel SSH ou à persistência da conexão do sistema, você está fazendo errado;)