Sorry for the Necro-Bump here, and sorry if this is explained elsewhere, but google lead me directly to this thread, and since I assume it will lead others here, this seemed like valuable information to add.
This may just be a bug in the core asus webui, or it could be in Merlin. Not sure, but I have seen it suggested this behaves identically in native asus, in which case this is a core firmware bug / "feature". If anyone would be able to point me how I could file a bug report with Asus, that would be a good idea.
Here is what happens. When I "set" a password of a length longer than 16 in the WebUI, it doesn't throw any errors, it doesn't display any messages. It happily allows me to enter a password at any length I wish. What it does, is it truncates the password to 16 Characters, without even telling the user. Then, it does the same thing when logging in via the WebUI, it will truncate the input invisibly to 16 characters, even though it shows all the characters typed.
The end result is that you *think* your password is more than 16 characters, but the firmware has in the background been treating all passwords input as no more than 16 characters without any user feedback. So therefore, when you try and log into ssh with your full password, you get a password error. Only typing the first 16 characters of the password will result in ssh logging in successfully.
This seems like horrible behavior overall. Even setting aside password limits being a Bad Thing (TM), not at the very least giving a user feedback that half of their password is being ignored creates a really bad user experience (and false perception of secure passwords, since the online page still calculates its "strength" based off of the full input password, and not the actual 16 characters used). At the very least, if the limit is 16, the input fields should all be limited to 16, and/or throw errors when more than 16 characters are input.