ssh terry@host2 ls ~is just badly quoted/escaped. There's no need to use /home/terry if you correctly escape the tilde by putting it all in quotes:
ssh terry@host2 "ls ~".
This lets your shell know it's not supposed to resolve the "~" so that the shell on the other side of the ssh line will do so. See the e.g. EXPANSION section in man bash for more.