You're specifying an incorrect public key.
I mean, the error you gave us tells you that.
-i identity_file
Selects a file from which the identity (private key) for public key authentication is read. The default is ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 and
~/.ssh/id_rsa. Identity files may also be specified on a per-host basis in the configuration file. It is possible to have multiple -i options (and multiple
identities specified in configuration files). If no certificates have been explicitly specified by the CertificateFile directive, ssh will also try to load cer-
tificate information from the filename obtained by appending -cert.pub to identity filenames.
Out of curiosity, what's stopping you using this?
https://packagist.org/packages/stechstudio/laravel-ssh-tunnel
ALSO:
If you read the comments you'll find some issues reporting issues with the -N option. Try removing it.
-N Do not execute a remote command. This is useful for just forwarding ports.