To automate a seemles terminal experience over an SSH session I do this:
~/.ssh/config:
--------------
Host *
PermitLocalCommand yes
LocalCommand tar c -C${HOME} .config/zsh .zshrc .vim .vimrc .tmux.conf \
| ssh -o PermitLocalCommand=no %n "tar mx -C${HOME} ; chsh -s /bin/zsh"
Alternative in a bash script:
~/Scripts/tools/zsh-ssh.sh <REMOTE>
--------------
#!/bin/zsh
tar c -C${HOME} .config/zsh .zshrc .vim .vimrc .tmux.conf | ssh $1 'tar mx -C${HOME}'
ssh -t $1 "/bin/zsh"