OpenSSH 是 SSH 协议(版本 2)的完整实现,用于安全远程登录、命令执行和文件传输。它包括客户端ssh
和服务器sshd
、文件传输实用程序scp
和sftp
以及密钥生成工具 ( ssh-keygen
)、运行时密钥存储 ( ssh-agent
) 和许多支持程序。
这是 OpenBSD 的 OpenSSH 到大多数类 Unix 操作系统的端口,包括 Linux、OS X 和 Cygwin。可移植的 OpenSSH 填充了其他地方不可用的 OpenBSD API,为更多操作系统添加了 sshd 沙箱,并包括对操作系统本机身份验证和审计的支持(例如使用 PAM)。
OpenSSH 的官方文档是每个工具的手册页:
SSH(1)
SSHD(8)
ssh-keygen(1)
ssh 代理(1)
SCP(1)
sftp(1)
ssh-keyscan(8)
sftp 服务器(8)
可以从许多下载镜像获得稳定版本的 tarball。我们建议大多数用户使用稳定版本。请阅读发行说明,了解最新更改和潜在不兼容性的详细信息。
便携式 OpenSSH 是使用 autoconf 和 make 构建的。它需要一个有效的 C 编译器、标准库和头文件。
也可以使用 LibreSSL 或 OpenSSL 中的libcrypto
。 OpenSSH 可以在没有这些的情况下构建,但生成的二进制文件将仅包含通常可用的加密算法的子集。
zlib 是可选的;如果没有它,则不支持传输压缩。
FIDO 安全令牌支持需要 libfido2 及其依赖项,如果找到它们,将自动启用。
此外,某些平台和构建时选项可能需要额外的依赖项;有关您的平台的详细信息,请参阅 README.platform。
git 中的发布 tarball 和发布分支包含configure
脚本的预构建副本,可以使用以下方式构建:
tar zxvf openssh-X.YpZ.tar.gz cd openssh ./configure # [options] make && make tests
有关配置选项,请参阅下面的构建时自定义部分。如果您计划将 OpenSSH 安装到系统中,那么您通常需要指定目标路径。
如果从 git master 分支构建,您需要安装 autoconf 来构建configure
脚本。以下命令将从 git 检查并构建可移植的 OpenSSH:
git clone https://github.com/openssh/openssh-portable # or https://anongit.mindrot.org/openssh.git cd openssh-portable autoreconf ./configure make && make tests
有许多构建时自定义选项可用。支持所有 Autoconf 目标路径标志(例如--prefix
)(如果要安装 OpenSSH,通常需要这些标志)。
要获得可用标志的完整列表,请运行./configure --help
但下面描述了一些更常用的标志。其中一些标志将需要安装额外的库和/或标头。
旗帜 | 意义 |
---|---|
--with-pam | 启用 PAM 支持。支持 OpenPAM、Linux PAM 和 Solaris PAM。 |
--with-libedit | 启用 sftp 的 libedit 支持。 |
--with-kerberos5 | 启用 Kerberos/GSSAPI 支持。支持 Heimdal 和 MIT Kerberos 实现。 |
--with-selinux | 启用 SELinux 支持。 |
可移植的 OpenSSH 开发在 openssh-unix-dev 邮件列表(存档镜像)上进行了讨论。 Bug 和功能请求在我们的 Bugzilla 上进行跟踪。
非安全错误可以通过 Bugzilla 或通过上面的邮件列表向开发人员报告。安全错误应报告给 [email protected]。