中发生的错误/etc/ssh/sshd_config
可能会将用户或管理员锁定在仅可通过 SSH 访问的服务器之外。在这种情况下,Telnet SSL 是访问服务器的备用方式。如何在 Ubuntu 服务器上设置 Telnet SSL 服务器?
Telnet SSL 安装方式如下:
sudo apt install telnetd-ssl
安装后,它会创建证书/etc/telnetd-ssl/telnetd.pem
。当 Telnet SSL 客户端尝试连接到 Telnet SSL 服务器时,它不会接受该证书,导致客户端输出如下:
$ telnet-ssl -z secure example.org 23
Trying 127.0.0.1...
Connected to example.org.
Escape character is '^]'.
[SSL - attempting to switch on SSL]
[SSL - handshake starting]
SSL: Server has a self-signed certificate
SSL: unknown issuer: /O=Internet Widgits Pty Ltd/OU=m93p telnetd/CN=example./emailAddress=root@example.
SSL: certificate verify failed
telnet: Unable to ssl_connect to remote host
Connection closed.
如何解决这个问题?
答案1
Telnet SSL 服务器,它不接受证书,导致客户端输出如下内容:
$ telnet-ssl -z secure example.org 23 ... SSL: Server has a self-signed certificate SSL: unknown issuer: /O=Internet Widgits Pty Ltd/OU=m93p telnetd/CN=example./emailAddress=root@example. SSL: certificate verify failed
根据telnet-ssl(1)
手册页,看起来您需要一个-z cert=<cert file>
选项。
-z cert=<cert file>
是必需的,因为颁发者(主题 DN = /O=Internet Widgits Pty Ltd/OU=m93p telnetd/CN=example./emailAddress=root@example
)不受系统信任。也就是说,证书不位于/etc/ssl/certs/
。
另一个选项可能是将证书添加到/etc/ssl/certs/
。对于 Debian 和 Ubuntu,您只需将 PEM 格式的新证书复制到目录/etc/ssl/certs/
。新证书将与其他 450 个左右的证书并存。
对于 Fedora,您必须将新证书附加到文件/etc/ssl/certs/ca-bundle.crt
。ca-bundle.crt
实际上是指向的链接/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
。tls-ca-bundle.pem
只是将 PEM 文件连接成一个文件。
Fedora 也有一个/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
,但我不相信你会使用它,因为ca-bundle.trust.crt
它是为 CA 准备的,而自签名的终端实体证书应该不是有CA=TRUE
基本约束。
值得一提的是,我从未使用过telnet-ssl
,因此无法根据经验提供完整的答案。一旦您超越“信任此 SSL 证书”,您可能会遇到其他问题。例如,看起来 TLS 上的 Telnet 使用端口 992,而不是 23。