ssh login causes repeating characters in my zsh

To prevent this strange behaviour, you have to set LC_ALL env variable on the remote machine to the same value as in your local machine. To check what is your LC_ALL set to, type on the local machine:

echo $LC_ALL

In my case my system returned C.UTF-8. To set the variable for single ssh session only, just type in the remote session:

export LC_ALL=C.UTF-8

However, if you want this to be done once for all, add this^ line somewhere in the .zshrc file on the remote machine.

If for any reason it will still not help, try to experiment with LANG and LC_CTYPE also setting this to the same value as LS_ALL. In my case:

export LANG=C.UTF-8
export LC_CTYPE=C.UTF-8