autossh works as expected by systemd setup for boot fails

It looks like the ssh session started by systemd is looking for a password. I am assuming that when you are running autossh manually it uses public key authentication, and that the public key is stored in the home directory of the user who's executing this (your reference to ~/.ssh does not say which user's home directory it is). The autossh executed by systemd should be running as the same user and have access to the same .ssh directory, otherwise it will not be able to use the same username/password combination.

You can specify username the the service should run by adding User= directive to the Service section of tunnel.service file.