# 简介
OpenSSH 是使用 SSH 协议进行远程登录的首要连接工具。 它对所有流量进行加密,以消除窃听、连接劫持和其他攻击。 此外,OpenSSH 还提供了大量安全隧道功能、多种身份验证方法和复杂的配置选项。
OpenSSH 套件由以下工具组成:
- 远程操作是使用 ssh (opens new window)、scp (opens new window) 和 sftp (opens new window) 完成的。
- 密钥管理与 ssh-add (opens new window), ssh-keysign (opens new window), ssh-keyscan (opens new window), 和 ssh-keygen (opens new window)。
- 服务端由 sshd (opens new window)、sftp-server (opens new window) 服务器和 ssh-agent (opens new window) 组成。
OpenSSH 由 OpenBSD 项目 (opens new window) 的一些开发人员开发,并在 BSD 样式的许可证下提供。 OpenSSH 被纳入许多商业产品中,但其中很少有公司为 OpenSSH 提供资金。 对 OpenSSH 的捐款可以寄往 OpenBSD 基金会 (opens new window)。
# 手册
有关以下命令,OpenBSD 提供了 Web 手册页。这些手册页反映了 OpenSSH 的最新开发版本。
- ssh(1) (opens new window) — 基本 rlogin/rsh 样客户端程序
- sshd(8) (opens new window) — 允许您登录的守护进程
- ssh_config(5) (opens new window) — 客户端配置文件
- sshd_config(5) (opens new window) — 守护进程配置文件
- ssh_agent(1) (opens new window) — 可以存储私钥的身份验证代理
- ssh-add(1) (opens new window) — 在上述代理中添加密钥的工具
- sftp(1) (opens new window) — 适用于 SSH1 和 SSH2 协议的 FTP 式程序
- scp(1) (opens new window) — 文件复制程序,其作用类似于 rcp
- ssh-keygen(1) (opens new window) — 密钥生成工具
- sftp-server(8) (opens new window) — SFTP 服务器子系统(由 sshd 自动启动)
- ssh-keyscan(1) (opens new window) — 用于从多个主机收集公共主机密钥的实用程序
- ssh-keysign(8) (opens new window) — 基于主机的身份验证帮助程序
在 OpenSSH 中实现的 SSH2 协议由 IETF secsh (opens new window) 工作组标准化,并在多个 RFC 和草稿中指定。体系结构 (opens new window) RFC 中描述了 SSH2 的总体结构。它由三个分层组件组成:
- 传输层 (opens new window) 提供算法协商和密钥交换。密钥交换包括在安全加密连接中的服务器身份验证和结果:它提供完整性、机密性和可选压缩。
- 用户身份验证层 (opens new window) 使用已建立的连接,并依赖于传输层提供的服务。它提供了几种用于用户身份验证的机制。其中包括传统的密码身份验证及公钥或基于主机的身份验证机制。
- 连接层 (opens new window) 通过经过身份验证的连接多路复用许多不同的并发通道,并允许对登录会话和 TCP 转发进行隧道传输。它为这些通道提供流量控制服务。此外,还可以协商各种特定于通道的选项。
# 其他文档
- 交互式身份验证 (opens new window) RFC 支持新的身份验证方案,如 S/Key 或 TIS 身份验证。
- SFTP 文件传输协议在 filexfer (opens new window) 草稿中指定。OpenSSH 实现 SFTP 客户端 (opens new window) 和 服务器 (opens new window)。
- 公钥的文件格式在公钥文件草稿中指定。命令 ssh 键 (1) 可用于将 OpenSSH 公钥转换为此文件格式。
- Diffie-Hellman Group Exchange (opens new window) 允许客户请求更安全的组进行 Diffie-Hellman 密钥交换。
- OpenSSH 实现了一种压缩方法 "[email protected]",该方法将启动压缩延迟到用户身份验证后,以消除对压缩代码进行身份验证前攻击的风险。它在 draft-miller-secsh-compression-delayed-00.txt (opens new window) 中进行描述。
- OpenSSH 实现额外的 MAC(消息身份验证代码) "[email protected]",其性能优于 RFC 4253 中指定的 MAC。它在 draft-miller-secsh-umac-01.txt (opens new window) 中描述。
- ssh 代理使用的身份验证代理协议记录在 PROTOCOL.agent (opens new window) 文件中。
- OpenSSH 对标准 SSH 协议进行各种其他次要扩展和背离。这些记录在 PROTOCOL (opens new window) 文件中。