You cannot authenticate with a public key only. You need a private key too.
I have a client who gave me the host name, port, remote directory, user name and their SSH public key. I am running WinSCP 5.15.2 and the setup I am using keeps asking me for a password. I am having trouble figuring out how to set up the site so that it will use the SSH key and not require a password. I am a bit new at this, so I am sorry if this is in the documentation somewhere - I couldn't find it.