SSH allows you to run commands on the remote system. Without any commands specified, it creates a pty and launches the shell, which is likely the only way you're used to invoking it.
If you want to run cat to display a file instead of launching a shell, just run:
ssh remote_host cat /remote/file/to/view
That will display the remote file and return you to your local shell prompt.
If you want to save that file, just redirect the output to the local file you want to save it as:
ssh remote_host cat /remote/file/to/view > local/file/to/create
If you want to copy an entire directory, you can pipe the output of tar over the ssh session:
ssh remote_host tar cf - /dir/to/copy | tar xvf -
The local tar process (the one extracting the archive) will strip the leading / off if you've specified an absolute path in the remote process like the above example. The example would create a dir/to/copy folder heirarchy in your local host's current directory. If you'd like to strip additional path components, use the
As an aside, if you want to connect to the host and edit the file in vi in a single step, you'll have to tell ssh to create a pty for you using the
ssh -t remote_host vi file/to/edit
If it's invoked interactively (no command specified so it launches a shell), it's smart enough to create the pty by default. With a command, specified, you have to explicitly tell it to create the pty.
See the ssh manpage for more details.