The shell interprets characters inside [...]
as alternatives for one character. See this example:
$ touch afoo bfoo cfoo dfoo $ print -l [ac]foo afoo cfoo
So, quote the hostname with single quotes to prevent the shell to interpret any special characters:
$ ssh-keygen -R '[slsapp.com]:1234'