最近成名 第一个实验版本正式上线 服务器和客户端的 SSH3 协议旨在作为 HTTP3 协议的补充 并且使用QUIC(基于UDP)、TLS 1.3,利用HTTP机制进行用户身份验证,以及建立安全通信通道
SSH3 使用基于HTTP协议的授权机制,除了使用密码和密钥对的经典身份验证之外,还允许新的身份验证方法,此外,在 SSH3 中,您可以通过组织的身份提供商或使用 Google 帐户或 GitHub 配置对远程服务器的访问。 SSH3 基于 HTTP/3 和 QUIC,除了正常的 TCP 转发之外,还提供 UDP 端口转发和更快、更安全的会话建立。
关于SSH3
项目开发人员提到SSH3的创建 是对 SSH 协议进行全面审查的结果,由一个独立的研究人员小组进行,该小组与从事 OpenSSH 和经典 SSH 协议的其他实现等项目的团队分开。在 SSH3,经典SSH协议的语义是通过HTTP机制实现的, 这不仅允许额外的功能,而且还确保与 SSH 相关的活动隐藏在其他流量中,等等, SSH3 相对于 SSH2 协议有以下改进 无法提供,以及许多流行的 OpenSSH 功能:
- 显着加快会话建立速度
- 除了经典的 SSH 身份验证之外,还包括新的 HTTP 身份验证方法,例如 OAuth 2.0 和 OpenID Connect。
- 在服务器上解析 ~/.ssh/authorized_keys。
解析客户端上的 ~/.ssh/config 并处理 Hostname、User 和 Portconfig IdentityFile 选项(其他选项当前被忽略)
基于证书的服务器身份验证 - 抵御端口扫描攻击的稳健性:您的 SSH3 服务器可能对其他 Internet 用户不可见
- UDP 端口转发 – 您现在可以访问 QUIC、DNS、RTP 或任何只能从 SSH3 主机访问的基于 UDP 的服务器。
- X.509 证书:您现在可以使用经典 HTTPS 证书来验证 SSH3 服务器。该机制比经典的 SSHv2 主机密钥机制更安全。
- 能够将服务器隐藏在秘密链接后面。
- 现代 QUIC 协议启用的所有功能:包括连接迁移和多路径连接
- 自动使用ssh-agent公钥认证
- SSH 代理转发以使用远程服务器上的本地密钥
- 使用 OpenID Connect 进行安全的无密钥用户身份验证。
为了加密通信通道,SSH3 使用 TLS 1.3 协议 可以使用基于密码和公钥(RSA 和 EdDSA/ed25519)的传统方法。此外,SSH3 提供了使用基于 OAuth 2.0 协议的方法的选项,允许将身份验证传输给外部提供商。
另一个 SSH3 的优点是它提供比 SSH2 快得多的会话建立速度, 例如,使用 SSH2 建立新会话可能需要 5 到 7 次网络迭代(往返),用户很容易注意到这一点,因为 SSH3 仅需要 3 次迭代。
如果您有兴趣了解更多信息,您应该知道客户端和服务器都是用 Go 编写的,并在 Apache 2.0 许可下分发,您可以查阅详细信息 在下面的链接中。
此外,值得一提的是,SSH3 仍处于实验阶段,不建议在生产或关键环境中使用它,因此仅建议安装它以了解其功能或能够进行测试。
下载并安装SSH3
为 有兴趣能够实现 SSH3 服务器进行测试, 您可以按照我们下面分享的说明使用 Go 编译源代码来完成此操作。
git clone https://github.com/francoismichel/ssh3 cd ssh3 go build -o ssh3 cmd/ssh3/main.go CGO_ENABLED=1 go build -o ssh3-server cmd/ssh3-server/main.go
完成此操作后,我们现在继续在 .bashrc 中添加环境变量:
export PATH=$PATH:/path/to/the/ssh3/directory
关于服务器的实现,由于SSH3运行在HTTP3之上,因此需要一个证书,可以使用脚本生成一个证书:
sh ./generate_openssl_selfsigned_certificate.sh
最后,我邀请您查阅有关附加功能的使用和实现的文档 以下链接。