I concur with @Stephane that there isn't a way to do this using the ~/.ssh/config file
. Another approach would be to use the ~/.ssh/authorized_keys
file on the remote server. If you add a line like this:
command="exec zsh" ssh-dss ..... rest of key ....
Then you can just ssh as normal and you'll get a zsh on the remote server.
Example
On server, ssh to remote.
$ ssh saml@greeneggs
On remote server, confirming we're in a zsh
.
[saml@greeneggs]~% ps -eaf|grep $$
saml 1974 1973 1 10:34 pts/3 00:00:00 zsh
saml 2023 1974 0 10:34 pts/3 00:00:00 ps -eaf
saml 2024 1974 0 10:34 pts/3 00:00:00 grep --color=auto 1974
You can do more elaborate things using this file, see this Q&A, titled: ssh, start a specific shell, and run a command on the remote machine?.