ssh和openssh软件包有什么区别?

我正在设置一个LAMP服务器,并想使用SSH。我看到了一个命令sudo apt-get install ssh,不知道它是否与openssh是同一件事?
如果我现在运行apt-get install openssh,那么我的机器上会有两个不同版本的ssh吗?
1个回答

好的... 简单来说:让我们询问软件包管理器 aptitude search ssh。你会得到一个相当大的输出,但我会为你挑选一些:
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                      -                                          

那是我的桌面电脑,它没有SSH服务器,但有一个客户端。看到第一个字母了吗?这里有三个不同的字母:i、p和v。它们分别代表已安装(installed)、已清除(purged)和虚拟(virtual)。已安装很明显,程序就在那里。已清除意味着未安装,如果你完全删除一个程序,就称为清除,这与从未安装过的程序无法区分。最后,还有虚拟。它们不是真正的软件包,而是指向一个或多个要安装的软件包。
正如您在描述中所看到的,SSH是一个普通的软件包,将安装客户端和服务器。让我们询问软件包管理器它具体是什么意思:aptitude show ssh,这将给您以下信息:
Package: ssh                             
State: not installed
Version: 1:6.6p1-2ubuntu2.8
Priority: optional
Section: net
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
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/

描述非常直接,但你可以从中获取更多信息而不仅仅是描述。有一行以Depends开头的内容。这意味着“为了安装此软件包,还必须安装以下软件包”。现在看看:它同时安装了openssh-client和openssh-server。
那么,有什么区别呢?aptitude install openssh-server只会安装openssh-server。aptitude install ssh将同时安装openssh-server和openssh-client,但除非你的配置非常奇怪,否则你几乎肯定已经安装了openssh-client。
所以实际上呢?没有区别...但你今天学到了关于软件包的一些东西。

感谢你的出色回答,jawtheshark。我注意到当我运行“aptitude”时,它当前并未安装...这可能不是Ubuntu默认安装的程序吗? - jb61264
1确实不是。很多指南告诉你使用apt-get,这完全没问题。我更喜欢aptitude,因为它集成了不同的apt-*程序的许多功能。例如,搜索命令需要使用apt-cache而不是apt-get。新出现的是apt,在16.04LTS中默认包含。 - jawtheshark
1历史上(从记忆中,其他人可以纠正我),它是dpkgapt-get(以及许多以apt-开头的其他工具),aptitude和现在的apt。按顺序来说,dpkg是最早的,而apt是最新的。 - jawtheshark
1@jb61264 你应该考虑接受这个答案,因为它完全回答了你的问题。我怀疑你能找到比这更好的答案。 :) - Shomz
但是,如果您安装了ssh,然后再卸载ssh,它是否也会自动删除之前已经安装的openssh-client - WinEunuuchs2Unix
如果它已经存在,就不应该被卸载。 - jawtheshark