What's the difference between ssh and openssh packages?

Solution 1:

Ok... Simple: Let's ask the package manager aptitude search ssh. You will get a rather large output, but I'll pick a few for you:

i A openssh-client                  - secure shell (SSH) client, for secure acce
p   openssh-server                  - secure shell (SSH) server, for secure acce
p   ssh                             - secure shell client and server (metapackag
v   ssh-client                      -                          
v   ssh-server                      -                                          

That is my desktop and it doesn't have a ssh server. It does have a client. See the first letter? Here you see three different ones: i, p and v. They stand for installed, purged and virtual. Installed is obvious, the program is there. purged means not installed, if you remove a program completely, it is called purging and that is indistinguishable from a program that has never been installed. Finally, there is virtual. Those are not real packages but point to one or more packages to be installed.

As you can see in the description ssh is a normal package which will install the client and the server. Let's ask the package manager what exactly it means: aptitude show ssh, which will give you:

Package: ssh                             
State: not installed
Version: 1:6.6p1-2ubuntu2.8
Priority: optional
Section: net
Maintainer: Ubuntu Developers <[email protected]>
Architecture: all
Uncompressed Size: 29,7 k
Depends: openssh-client (>= 1:6.6p1-2ubuntu2.8), openssh-server (>= 1:6.6p1-2ubuntu2.8)
Description: secure shell client and server (metapackage)
 This metapackage is a convenient way to install both the OpenSSH client and the OpenSSH server. It provides nothing in and of itself, so you
 may remove it if nothing depends on it.
Homepage: http://www.openssh.org/

The description is pretty straightforward, but you can gather more information from it than just the description. There is a line starting with Depends. That means, "in order to install this package the following packages must also be installed". Now look at that: it installs both openssh-client and openssh-server.

So, what is the difference? aptitude install openssh-server will install only, and only openssh-server. aptitude install ssh will both install openssh-server and openssh-client, but unless you have a very strange configuration, you almost certainly already have openssh-client.

So practically? There is no difference... but you got to learn something about packages today.