When you connect to a remote server, you’re connecting over ssh or scp or a similar protocol. In each case, you may have to provide some authentication credentials to prove you are who you say you are. This can come in the form of a user/password combo, but if you’re connecting a lot or if you’re trying to setup a non-interactive connection, this can become either really monotonous or really problematic. Public/private keys will come to our rescue, and we’ll never need to enter our password again.
SSH is a great protocol that allows secure connections to remote systems. It’s easy to use, gives you terminal access to the system in question and allows you to function as you would were you at the machine itself – in the terminal. But, if you want to see actual windows, thru a GUI window management system like Gnome, for instance, you need to enable X11 forwarding.