OpenSSH 是 SSH 协议(版本 2)的完整实现,用于安全远程登录、命令执行和文件传输。它包括客户端 ssh 和服务端 sshd、文件传输工具 scp 和 sftp,以及密钥生成(ssh-keygen)、运行时密钥存储(ssh-agent)工具和许多支持程序。
这是 OpenBSD 的 OpenSSH 向大多数类 Unix 操作系统(包括 Linux、OS X 和 Cygwin)的移植。便携版 OpenSSH 为那些在其他平台不可用的 OpenBSD API 提供了兼容实现,为更多操作系统添加了 sshd 沙箱支持,并包含对操作系统原生身份验证和审计的支持(例如使用 PAM)。
OpenSSH 的官方文档是每个工具的手册页:
稳定版的 tarball 可从多个下载镜像获取。我们建议大多数用户使用稳定版。请阅读发布说明了解最近的更改和潜在的不兼容性。
便携版 OpenSSH 使用 autoconf 和 make 构建。它需要可用的 C 编译器、标准库和头文件。
也可以使用来自 LibreSSL、OpenSSL、AWS-LC 或 BoringSSL 的 libcrypto。OpenSSH 也可以在没有这些库的情况下构建,但生成的二进制文件将只包含通常可用加密算法的一个子集。
zlib 是可选的;没有它,传输压缩将不受支持。
FIDO 安全令牌支持需要 libfido2 及其依赖项,如果找到它们,将自动启用。
此外,某些平台和构建时选项可能需要额外的依赖项;有关您平台的详细信息,请参阅 README.platform。
发布版 tarball 和 git 中的发布分支包含预构建的 configure 脚本副本,可以使用以下命令构建:
tar zxvf openssh-X.YpZ.tar.gz
cd openssh
./configure # [options]
make && make tests
关于 configure 选项,请参阅下面的构建时自定义一节。如果您计划将 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,但下面会介绍一些较常用的标志。其中一些标志需要安装额外的库和/或头文件。
便携版 OpenSSH 的开发讨论可在 openssh-unix-dev 邮件列表(存档镜像)上进行。错误和功能请求在我们的 Bugzilla 中跟踪。
_非安全_错误可通过 Bugzilla 或上述邮件列表报告给开发人员。安全错误应报告至 [email protected]。
| Flag | Meaning |
|---|
--with-pam | 启用 PAM 支持。支持 OpenPAM、Linux PAM 和 Solaris PAM。 |
--with-libedit | 为 sftp 启用 libedit 支持。 |
--with-kerberos5 | 启用 Kerberos/GSSAPI 支持。支持 Heimdal 和 MIT Kerberos 实现。 |
--with-selinux | 启用 SELinux 支持。 |