For completeness, the tool people are usually pointed at is sshpass, which feeds a password to the client through a pseudo-terminal. It exists, it works, and it takes the password either as an argument, from a file, or from an environment variable.
It is worth knowing about because you will meet it in other people's scripts. It is not worth choosing, because every form of it leaves the password somewhere readable, and the file and environment variants are only marginally better than the command line.
The cases where it is genuinely the least bad option are narrow: a device that cannot accept keys at all, or a one-off migration. If you find yourself installing it for ongoing use, that is a sign the underlying setup needs fixing rather than working around.