Are they two very different things? Aren’t they both used as encryption systems?
A VPN is a way to extend a private network like your home network to other computers over the internet using encryption. You’re still using your computer, but on a different network.
SSH is a way to securely connect one computer to another. It’s usually used to remotely log in to another computer. You’re actually using the other computer. But it can do other things like file transfer or forwarding network connections.
SSH is a network protocol like HTTP. This means it has a very well-defined procedure for software to follow, so you can use different client and server software and it should still work.
VPN is more of a general concept that can be implemented in different ways, including over SSH. The client and server software both need to support the same methods.
VPN is used to connect to a private network (like a home network) that is hidden from the public network (i.e. the internet). SSH is primarily used to access another individual machine that you can already “see”. Essentially one mimics your connection as if you’re physically connected to a private network, while the other is the control of a remote computer. Both VPN and SSH are encrypted. The encryption methods vary and it’s really up to you (or what is being offered).
For example, if I am at home and I want to get a file that is only accessible when I’m physically at work, then I’ll use VPN. If I’m at work, and I want to remotely access another machine at work (like on the other side of the building), then I would use SSH (not the only way to do this).
SSH is an encrypted shell connection to (usually) a Linux based system. You can use SSH to tunnel other protocols, like a MySQL connection or a web session. You effectively are using a VPN by using SSH, but a VPN is not necessarily SSH. The scope of VPNs is broader but also deals with encapsulating connections with encryption.
So basically, VPN for private, and SSH for public? What do you mean exactly by “control of a remote computer”? How is it different from accessing files through a VPN?
When you use SSH, you’re typically accessing the terminal (or command prompt, some kind of command line interface) of a remote computer from the computer you’re sitting on. You’re actually controlling the remote computer. With VPN, you’re connecting to a remote network. The computer you’re on will “appear” like its physically on a different network.
If we take VPN for example, suppose we’re at home, and we connect to your work’s VPN. VPN creates a “tunnel” to connect your computer to your work’s private network, so it looks like you’re physically at work even though you’re not.
For SSH, you normally use it to “control” a different computer from the computer you’re sitting on. In most cases, SSH controls the remote computer by accessing its command line interface (i.e. command prompt for Windows, bash for Linux, etc.). It’s just a way to use a remote computer without being physically there.